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"=>chenkbyegionRegionAction::className(), "model"=>appmodelsRegion::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(chenkbyegionRegion::className(),[ "model"=>$model, "url"=> yiihelpersUrl::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"=>"选择县/区"] ]]);?>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持网页设计。