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仿discuz分页效果代码
Oct 02 PHP
php IP及IP段进行访问限制的代码
Dec 17 PHP
php中实现记住密码自动登录的代码
Mar 02 PHP
php学习之数据类型之间的转换介绍
Jun 09 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
Jan 31 PHP
ThinkPHP3.2.2的插件控制器功能简述
Jul 09 PHP
使用ob系列函数实现PHP网站页面静态化
Aug 13 PHP
PHP函数http_build_query使用详解
Aug 20 PHP
PHP中使用curl伪造IP的简单方法
Aug 07 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
Laravel 实现密码重置功能
Feb 23 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
May 02 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
使用sockets:从新闻组中获取文章(二)
2006/10/09 PHP
PHP+JS无限级可伸缩菜单详解(简单易懂)
2007/01/02 PHP
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
Yii 快速,安全,专业的PHP框架
2014/09/03 PHP
PHP数组与对象之间使用递归实现转换的方法
2015/06/24 PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
2016/03/21 PHP
PHP命名空间定义与用法实例分析
2019/08/14 PHP
ArrayList类(增强版)
2007/04/04 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
2013/10/11 Javascript
JavaScript数值转换的三种方式总结
2014/07/31 Javascript
javascript实现验证身份证号的有效性并提示
2015/04/30 Javascript
js实现将选中值累加到文本框的方法
2015/08/12 Javascript
js实现简洁的TAB滑动门效果代码
2015/09/06 Javascript
jQuery formValidator表单验证
2016/01/07 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
Validform验证时可以为空否则按照指定格式验证
2017/10/20 Javascript
结合mint-ui移动端下拉加载实践方法总结
2017/11/08 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
python中mechanize库的简单使用示例
2014/01/10 Python
一些常用的Python爬虫技巧汇总
2016/09/28 Python
Python常用内置模块之xml模块(详解)
2017/05/23 Python
python使用jieba实现中文分词去停用词方法示例
2018/03/11 Python
python生成密码字典的方法
2018/07/06 Python
django开发post接口简单案例,获取参数值的方法
2018/12/11 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
2020/02/07 Python
使用keras实现densenet和Xception的模型融合
2020/05/23 Python
关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
2016/01/27 HTML / CSS
美国网上购买眼镜:Eyeconic
2017/07/29 全球购物
Java中实现多态的机制是什么?
2014/12/07 面试题
学生实习推荐信范文
2013/11/26 职场文书
地球物理学专业推荐信
2014/09/08 职场文书
奥巴马经典演讲稿
2014/09/13 职场文书
用人单位聘用意向书
2015/05/11 职场文书
新教师教学工作总结
2015/08/12 职场文书
SpringMVC 整合SSM框架详解
2021/08/30 Java/Android