Yii2实现中国省市区三级联动实例


Posted in PHP onFebruary 08, 2017

1、获取源码:yii2-region_jb51.rar

2、安装

添加到你的composer.json文件

"chenkby/yii2-region": "dev-master"

切换到项目目录

composer update;

3、配置

1) 在地区的Model中添加以下方法

public static function getRegion($parentId=0)
{
  $result = static::find()->where(['parent_id'=>$parentId])->asArray()->all();
  return ArrayHelper::map($result, 'id', 'name');
}

2) 在controller中添加以下action

public function actions()
{
  $actions=parent::actions();
  $actions['get-region']=[
    'class'=>\chenkby\region\RegionAction::className(),
    'model'=>\app\models\Region::className()
  ];
  return $actions;
}

3) 在common/config里的main.php中添加 urlManager的enablePrettyUrl的,即隐藏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、使用

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
对PHP语言认识上需要避免的10大误区
Jun 12 PHP
PHP内置过滤器FILTER使用实例
Jun 25 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
Jun 26 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
Jul 02 PHP
PHP以mysqli方式连接类完整代码实例
Jul 15 PHP
WordPress中转义HTML与过滤链接的相关PHP函数使用解析
Dec 22 PHP
PHP面向对象程序设计实例分析
Jan 26 PHP
Laravel+jQuery实现AJAX分页效果
Sep 14 PHP
php array_key_exists() 与 isset() 的区别
Oct 24 PHP
实例解析php的数据类型
Oct 24 PHP
laravel 验证错误信息到 blade模板的方法
Sep 29 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
Oct 24 PHP
PHP+Ajax无刷新带进度条图片上传示例
Feb 08 #PHP
PHP中的使用curl发送请求(GET请求和POST请求)
Feb 08 #PHP
php制作基于xml的RSS订阅源功能示例
Feb 08 #PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
Feb 08 #PHP
php实现XML和数组的相互转化功能示例
Feb 08 #PHP
PHP 获取指定地区的天气实例代码
Feb 08 #PHP
PHP使用DOM和simplexml读取xml文档的方法示例
Feb 08 #PHP
You might like
php empty()与isset()区别的详细介绍
2013/06/17 PHP
基于flush()不能按顺序输出时的解决办法
2013/06/29 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
2014/11/18 PHP
php绘制一个扇形的方法
2015/01/24 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
改进:论坛UBB代码自动插入方式
2006/12/22 Javascript
jQuery live
2009/05/15 Javascript
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
jquery ajax 同步异步的执行 return值不能取得的解决方案
2012/01/08 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
2012/12/28 Javascript
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
jquery计算出left和top,让一个div水平垂直居中的简单实例
2016/07/13 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
Angularjs 动态添加指令并绑定事件的方法
2017/04/13 Javascript
javascript简单链式调用案例分析
2017/05/10 Javascript
angularjs之$timeout指令详解
2017/06/13 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
2018/09/07 Javascript
微信小程序与后台PHP交互的方法实例分析
2018/12/10 Javascript
实例介绍JavaScript中多种组合继承
2019/01/20 Javascript
Layui选项卡制作历史浏览记录的方法
2019/09/28 Javascript
微信小程序实现音乐播放器
2019/11/20 Javascript
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
Django自定义分页与bootstrap分页结合
2021/02/22 Python
python snownlp情感分析简易demo(分享)
2017/06/04 Python
Python分支结构(switch)操作简介
2018/01/17 Python
PyQt5 在label显示的图片中绘制矩形的方法
2019/06/17 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
Django学习之文件上传与下载
2019/10/06 Python
使用python远程操作linux过程解析
2019/12/04 Python
中文专业毕业生自荐信
2013/10/28 职场文书
代办委托书怎样写
2014/04/08 职场文书
文员求职信
2014/07/15 职场文书
干部作风建设年活动剖析材料
2014/10/23 职场文书
关于拾金不昧的感谢信
2015/01/21 职场文书
详解Mysql和Oracle之间的误区
2021/05/18 MySQL