本文實例講述了Yii2中DropDownList簡單用法。分享給大家供大家參考,具體如下:
這里以實際應用為例講解Yii2 DropDownList用法。
有一張分類表,無限極分類那種,表結構如下,pid就是父分類ID
這里我們要實現:
新建分類的時候,父分類可以從所有分類中任選一個或者不選
編輯分類時,父分類不能選擇當前編輯的分類。。。如果選自己,父分類就是自己了,必然出錯!
實現代碼如下,我就貼上form的全部代碼吧
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
<?php use common\models\Category; use yii\helpers\ArrayHelper; use yii\helpers\Html; use yii\widgets\ActiveForm; /* @var $this yii\web\View */ /* @var $model common\models\Category */ /* @var $form yii\widgets\ActiveForm */ ?> <div class = "category-form" > <div class = "row" > <?php if (! $model ->isNewRecord) { //如果是編輯分類 $cate = ArrayHelper::map(Category::find()->andWhere( 'id != :id' , [ ':id' => $model ->id])->all(), 'id' , 'title' ); } else { //如果是新建分類 $cate = ArrayHelper::map(Category::find()->all(), 'id' , 'title' ); } ?> <div class = "col-md-6 col-md-offset-3" > <?php $form = ActiveForm::begin(); ?> <?= $form ->field( $model , 'title' )->textInput([ 'maxlength' => 100])->label( "分類標題" ) ?> <?= $form ->field( $model , 'name' )->textInput([ 'maxlength' => 100])->label( "分類別名" ) ?> <?= $form ->field( $model , 'pid' )->dropDownList( $cate , [ 'prompt' => '請選擇父分類' ])->label( "父分類" ) ?> <?= $form ->field( $model , 'keywords' )->textarea([ 'maxlength' => 255])->label( "分類關鍵詞" ) ?> <?= $form ->field( $model , 'description' )->textarea([ 'maxlength' => 255])->label( "分類描述" ) ?> <div class = "form-group" > <div class = "row" > <div class = "col-md-6 col-md-offset-3" > <?= Html::submitButton( $model ->isNewRecord ? '創建' : '更新' , [ 'class' => $model ->isNewRecord ? 'btn btn-block btn-success' : 'btn btn-block btn-primary' ]) ?> </div> </div> </div> <?php ActiveForm:: end (); ?> </div> </div> </div> |
希望本文所述對大家基于Yii框架的PHP程序設計有所幫助。