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数据库类
May 27 PHP
PHP 各种排序算法实现代码
Aug 20 PHP
ajax取消挂起请求的处理方法
Mar 18 PHP
利用php获取服务器时间的实现代码
Jun 07 PHP
php画图实例
Nov 05 PHP
php检索或者复制远程文件的方法
Mar 13 PHP
优化WordPress的Google字体以加速国内服务器上的运行
Nov 24 PHP
php实现搜索类封装示例
Mar 31 PHP
PHP中功能强大却很少使用的函数实例小结
Nov 10 PHP
php实现的统计字数函数定义与使用示例
Jul 26 PHP
laravel学习笔记之模型事件的几种用法示例
Aug 15 PHP
PHP实现财务审核通过后返现金额到客户的功能
Jul 04 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详解ASCII码对照表与字符转换
2011/12/05 PHP
PHP实现图片压缩的两则实例
2014/07/19 PHP
php实现json编码的方法
2015/07/30 PHP
php命令行写shell实例详解
2018/07/19 PHP
php ajax数据传输和响应方法
2018/08/21 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
php遍历目录下文件并按修改时间排序操作示例
2019/07/12 PHP
javascript优先加载笔记代码
2008/09/30 Javascript
js中replace的用法总结
2013/12/27 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
如何利用AngularJS打造一款简单Web应用
2015/12/05 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
2017/04/13 Javascript
详解使用webpack构建多页面应用
2017/12/21 Javascript
最后说说Vue2 SSR 的 Cookies 问题
2018/05/25 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
js实现搜索提示框效果
2020/09/05 Javascript
[03:19]2016国际邀请赛中国区预选赛第四日TOP10镜头集锦
2016/07/01 DOTA
Python操作CouchDB数据库简单示例
2015/03/10 Python
Python实现对字符串的加密解密方法示例
2017/04/29 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
2020/06/03 Python
matplotlib绘制多子图共享鼠标光标的方法示例
2021/01/08 Python
Python爬虫UA伪装爬取的实例讲解
2021/02/19 Python
欧舒丹澳洲版:L’OCCITANE
2017/07/17 全球购物
教师实习自我鉴定
2013/12/11 职场文书
大学校园活动策划书
2014/02/04 职场文书
幼儿园教师自我鉴定
2014/03/20 职场文书
出生公证书样本
2014/04/04 职场文书
2014年党支部承诺书
2014/05/30 职场文书
社区娱乐活动方案
2014/08/21 职场文书
学校后勤工作总结2015
2015/05/15 职场文书
实习证明模板
2015/06/16 职场文书
基层党建工作简报
2015/07/21 职场文书
小学班主任研修日志
2015/11/13 职场文书
如何用python插入独创性声明
2021/03/31 Python