Heim  >  Artikel  >  Backend-Entwicklung  >  Yii2 implementiert dreistufige Verknüpfungsbeispiele für Provinzen und Gemeinden in China

Yii2 implementiert dreistufige Verknüpfungsbeispiele für Provinzen und Gemeinden in China

高洛峰
高洛峰Original
2017-03-23 14:10:351553Durchsuche

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, &#39;district&#39;)->widget(\chenkby\region\Region::className(),[
  &#39;model&#39;=>$model,
  &#39;url&#39;=> \yii\helpers\Url::toRoute([&#39;get-region&#39;]),
  &#39;province&#39;=>[
    &#39;attribute&#39;=>&#39;province&#39;,
    &#39;items&#39;=>Region::getRegion(),
    &#39;options&#39;=>[&#39;class&#39;=>&#39;form-control form-control-inline&#39;,&#39;prompt&#39;=>&#39;选择省份&#39;]
  ],
  &#39;city&#39;=>[
    &#39;attribute&#39;=>&#39;city&#39;,
    &#39;items&#39;=>Region::getRegion($model[&#39;province&#39;]),
    &#39;options&#39;=>[&#39;class&#39;=>&#39;form-control form-control-inline&#39;,&#39;prompt&#39;=>&#39;选择城市&#39;]
  ],
  &#39;district&#39;=>[
    &#39;attribute&#39;=>&#39;district&#39;,
    &#39;items&#39;=>Region::getRegion($model[&#39;city&#39;]),
    &#39;options&#39;=>[&#39;class&#39;=>&#39;form-control form-control-inline&#39;,&#39;prompt&#39;=>&#39;选择县/区&#39;]
  ]
]);
?>

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:

Verwenden Sie PHP, um die dreistufige Verknüpfung städtischer Gebiete mit angeschlossener Datenbank zu realisieren

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn