yii2的下拉框dropDownList使用方法

Joeysn發表於2018-03-09

dropDownList很多人使用起來沒法加預設值或者自動選中,一下是個人總結的效果,方便以後使用

一、使用Html助手類

echo Html::dropDownList('cat_pid', null, \common\models\CategoryModel::find()
            ->select(['cat_title','cat_id'])
            ->where(['cat_status'=>1,'cat_flag'=>$flag])
            ->orderBy('cat_sort')
            ->indexBy('cat_id')
            ->column(),
            [
                'options' => ['5' => ['selected' => true]],
                'prompt' =>['text'=>'頂級欄目', 'options'=>['value'=>0]],
                'style'=>'width:200px',
            ]);

        列印效果程式碼:

<select name="cat_pid" style="width:200px">
<option value="0">頂級欄目</option>
<option value="2">門店欄目</option>
<option value="4">杭州</option>
<option value="14">uuu</option>
<option value="16">uuu1</option>
<option value="5" selected>浦東新區</option>
<option value="3">上海</option>
<option value="17">u</option>
<option value="6">長寧區</option>
<option value="18">uk</option>
<option value="7">閘北區</option>
<option value="15">uuu1</option>
<option value="13">uuu</option>
</select> 

二、使用ActiveForm小部件

        <?= $form->field($model,'cat_pid')
            ->dropDownList(\common\models\CategoryModel::find()
                ->select(['cat_title','cat_id'])
                ->where(['cat_status'=>1,'cat_flag'=>$flag])
                ->orderBy('cat_sort')
                ->indexBy('cat_id')
                ->column(),
                [
                   'value' => 5,
                   'prompt' =>['text'=>'頂級欄目', 'options'=>['value'=>0]],
                ]);
        ?>

       列印效果效果

<div class="form-group field-categorymodel-cat_pid required">
<label class="control-label" for="categorymodel-cat_pid">上一級類別</label>
<select id="categorymodel-cat_pid" class="form-control" name="CategoryModel[cat_pid]" value="5" aria-required="true">
<option value="0">頂級欄目</option>
<option value="2">門店欄目</option>
<option value="4">杭州</option>
<option value="14">uuu</option>
<option value="16">uuu1</option>
<option value="5" selected>浦東新區</option>
<option value="3">上海</option>
<option value="17">u</option>
<option value="6">長寧區</option>
<option value="18">uk</option>
<option value="7">閘北區</option>
<option value="15">uuu1</option>
<option value="13">uuu</option>
</select>

<div class="help-block"></div>
</div>