Yii2 realisiert die dreistufige Verknüpfungsinstanz von Chinas Provinzen und Gemeinden
Installation
Zu Ihrer Composer.json-Datei hinzufügen
"chenkby/yii2-region": "dev-master"
Wechseln Sie zum Projektverzeichnis
composer update;
3. Konfiguration
1) Fügen Sie die folgende Methode zum Modell der Region hinzu
public static function getRegion($parentId=0) { $result = static::find()->where(['parent_id'=>$parentId])->asArray()->all(); return ArrayHelper::map($result, 'id', 'name'); }
2 ) Fügen Sie die folgenden Aktionen im Controller hinzu
public function actions() { $actions=parent::actions(); $actions['get-region']=[ 'class'=>\chenkby\region\RegionAction::className(), 'model'=>\app\models\Region::className() ]; return $actions; }
3) Fügen Sie „enablePrettyUrl“ von urlManager in main.php in common/config hinzu, d. h. index.php ausblenden
"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. Verwenden Sie
<?= $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'=>'选择县/区'] ] ]); ?>
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er zum Lernen aller beiträgt.
MehrYii2 implementiert dreistufige Verknüpfungsbeispiele für Provinzen und Gemeinden in ChinaFür verwandte Artikel beachten Sie bitte die chinesische PHP-Website!
Verwandte Artikel:
js, um die drei zu realisieren -Ebenen-Verknüpfungsmenüeffekt von Provinzen und Gemeinden
Beispielcode zur Implementierung des dreistufigen Ajax-Verknüpfungs-Dropdown-Menüs