


Yii2 implements three-level linkage examples of provinces and municipalities in China
Mar 23, 2017 pm 02:10 PMYii2 realizes the three-level linkage instance of China's provinces and municipalities
Installation
Add to your composer.json file
"chenkby/yii2-region": "dev-master"
Switch to the project Directory
composer update;
3. Configuration
1) Add the following method in the model of the region
public static function getRegion($parentId=0) { $result = static::find()->where(['parent_id'=>$parentId])->asArray()->all(); return ArrayHelper::map($result, 'id', 'name'); }
2) In the controller Add the following action
public function actions() { $actions=parent::actions(); $actions['get-region']=[ 'class'=>\chenkby\region\RegionAction::className(), 'model'=>\app\models\Region::className() ]; return $actions; }
3) Add enablePrettyUrl of urlManager in main.php in common/config, that is, hide index.php
"urlManager" => [ //用于表明urlManager是否启用URL美化功能,在Yii1.1中称为path格式URL, // Yii2.0中改称美化。 // 默认不启用。但实际使用中,特别是产品环境,一般都会启用。 "enablePrettyUrl" => true, // 是否启用严格解析,如启用严格解析,要求当前请求应至少匹配1个路由规则, // 否则认为是无效路由。 // 这个选项仅在 enablePrettyUrl 启用后才有效。 "enableStrictParsing" => false, // 是否在URL中显示入口脚本。是对美化功能的进一步补充。 "showScriptName" => false, // 指定续接在URL后面的一个后缀,如 .html 之类的。仅在 enablePrettyUrl 启用时有效。 "suffix" => "", "rules" => [ "<controller:\w+>/<id:\d+>"=>"<controller>/view", "<controller:\w+>/<action:\w+>"=>"<controller>/<action>" ], ],
4. Use
<?= $form->field($model, 'district')->widget(\chenkby\region\Region::className(),[ 'model'=>$model, 'url'=> \yii\helpers\Url::toRoute(['get-region']), 'province'=>[ 'attribute'=>'province', 'items'=>Region::getRegion(), 'options'=>['class'=>'form-control form-control-inline','prompt'=>'选择省份'] ], 'city'=>[ 'attribute'=>'city', 'items'=>Region::getRegion($model['province']), 'options'=>['class'=>'form-control form-control-inline','prompt'=>'选择城市'] ], 'district'=>[ 'attribute'=>'district', 'items'=>Region::getRegion($model['city']), 'options'=>['class'=>'form-control form-control-inline','prompt'=>'选择县/区'] ] ]); ?>
The above is the entire content of this article. I hope it will be helpful to everyone's study. I also hope that everyone will support the PHP Chinese website.
MoreYii2 implements three-level linkage examples of provinces and municipalities in ChinaFor related articles, please pay attention to the PHP Chinese website!
Related articles:
Use PHP to realize three-level linkage in urban areas with attached database
js to realize the effect of three-level linkage menu in provinces and municipalities
Example code to implement ajax three-level linkage drop-down menu

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

11 Best PHP URL Shortener Scripts (Free and Premium)

Working with Flash Session Data in Laravel

Simplified HTTP Response Mocking in Laravel Tests

Build a React App With a Laravel Back End: Part 2, React

cURL in PHP: How to Use the PHP cURL Extension in REST APIs

12 Best PHP Chat Scripts on CodeCanyon

Announcement of 2025 PHP Situation Survey
