Home Backend Development PHP Tutorial Yii2 implements three-level linkage examples of provinces and municipalities in China

Yii2 implements three-level linkage examples of provinces and municipalities in China

Mar 23, 2017 pm 02:10 PM

Yii2 realizes the three-level linkage instance of China's provinces and municipalities

Installation

Add to your composer.json file

"chenkby/yii2-region": "dev-master"
Copy after login

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');
}
Copy after login

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;
}
Copy after login

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>" 
  ],
],
Copy after login

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'=>'选择县/区']
  ]
]);
?>
Copy after login

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

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

11 Best PHP URL Shortener Scripts (Free and Premium) 11 Best PHP URL Shortener Scripts (Free and Premium) Mar 03, 2025 am 10:49 AM

11 Best PHP URL Shortener Scripts (Free and Premium)

Working with Flash Session Data in Laravel Working with Flash Session Data in Laravel Mar 12, 2025 pm 05:08 PM

Working with Flash Session Data in Laravel

Simplified HTTP Response Mocking in Laravel Tests Simplified HTTP Response Mocking in Laravel Tests Mar 12, 2025 pm 05:09 PM

Simplified HTTP Response Mocking in Laravel Tests

Introduction to the Instagram API Introduction to the Instagram API Mar 02, 2025 am 09:32 AM

Introduction to the Instagram API

Build a React App With a Laravel Back End: Part 2, React Build a React App With a Laravel Back End: Part 2, React Mar 04, 2025 am 09:33 AM

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 cURL in PHP: How to Use the PHP cURL Extension in REST APIs Mar 14, 2025 am 11:42 AM

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

12 Best PHP Chat Scripts on CodeCanyon 12 Best PHP Chat Scripts on CodeCanyon Mar 13, 2025 pm 12:08 PM

12 Best PHP Chat Scripts on CodeCanyon

Announcement of 2025 PHP Situation Survey Announcement of 2025 PHP Situation Survey Mar 03, 2025 pm 04:20 PM

Announcement of 2025 PHP Situation Survey

See all articles