/** * 查询所有省份,返回object,缓存1小时、依赖省份数量 * @return \common\models\Province[] */ public static function findAllForObject() { $dependency = new DbDependency(['sql' => 'select count(*) from province']); $result = Province::getDb()->cache(function () { return Province::find()->all(); }, 3600, $dependency); return $result; }
/** * 获得省份名称 * @return string */ public static function getProvinceNameById($id) { $provinceLists = \Yii::$app->cache->get('cache_province'); if (!$provinceLists) { $province = Province::find()->where('1=1')->orderBy('id asc')->all(); foreach ($province as $onePr) { $provinceLists[$onePr->provinceID] = $onePr->province; } \Yii::$app->cache->set('cache_province', $provinceLists); } return $provinceLists[$id]; }
/** * 初始化与系统地址有关的文件缓冲 */ public static function initSysaddress() { $sysaddress = array(); //配置ID与地区匹配缓冲 $province = Province::find()->where('1=1')->orderBy('id asc')->all(); $city = City::find()->where('1=1')->orderBy('father asc,id asc')->all(); $area = Area::find()->where('1=1')->orderBy('father asc,id asc')->all(); foreach ($province as $value) { $sysaddress['province'][$value->provinceID] = $value->province; } foreach ($city as $value) { $sysaddress['city'][$value->cityID] = $value->city; } foreach ($area as $value) { $sysaddress['area'][$value->areaID] = $value->area; } //配置多级联动操作相关缓冲 $sysaddress['province_option'] = ''; foreach ($province as $value) { $sysaddress['province_option'] .= '<option value="' . $value->provinceID . '">' . $value->province . '</option>'; } $sysaddress['province_option'] = '<select name="province" class="qys_common_provice contactField requiredField">' . $sysaddress['province_option'] . '</select>'; #获得所有城市列表并按照省份排序 #先从缓冲获得数据 $i = 0; $city_list_fit = ''; foreach ($city as $value) { if ($value->father !== $i) { $city_list_fit .= '</select><select name="city" class="qys_common_city_' . $value->father . ' contactField requiredField">'; $i = $value->father; } $city_list_fit .= '<option value="' . $value->cityID . '">' . $value->city . '</option>'; } $city_list_fit .= '</select>'; $city_list_fit = substr($city_list_fit, 9); $sysaddress['city_option'] = $city_list_fit; #获得所有城市列表并按照省份排序 #先从缓冲获得数据 $i = 0; $area_list_fit = ''; foreach ($area as $value) { if ($value->father !== $i) { $area_list_fit .= '</select><select name="area" class="qys_common_area_' . $value->father . ' contactField requiredField">'; $i = $value->father; } $area_list_fit .= '<option value="' . $value->areaID . '">' . $value->area . '</option>'; } $area_list_fit .= '</select>'; $area_list_fit = substr($area_list_fit, 9); $sysaddress['area_option'] = $area_list_fit; \Yii::$app->cache->set('sys_address', $sysaddress); }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Province::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['province_id' => $this->province_id, 'region_id' => $this->region_id]); $query->andFilterWhere(['like', 'province_name', $this->province_name]); return $dataProvider; }
/* @var $form yii\widgets\ActiveForm */ ?> <div class="municipal-city-form"> <?php $form = ActiveForm::begin(); ?> <?php echo $form->field($model, 'municipality_name')->textInput(['maxlength' => true]); ?> <?php $province = Province::find()->all(); $listData = ArrayHelper::map($province, 'province_id', 'province_name'); echo $form->field($model, 'province_id')->dropDownList($listData, ['prompt' => 'Select your Province']); ?> <div class="form-group"> <?php echo Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']); ?> </div> <?php ActiveForm::end(); ?> </div>