Yii2 dropdownList select 默认选项

Yii2 dropdownList select default option

我在 url 中通过 GET 返回 cat_id 值,表示我的下拉列表,其中 Item 必须是 select。 但是没用。

<?= $form->field($model, 'cat_id')->dropDownList(
ArrayHelper::map(DeviceCats::find()
->where(['is_deleted' => 'no'])->all(),'id','title')
,['options' => [$_GET['cat_id'] => ['selected'=>true]]
, 'prompt' => ' -- Select Category --']) ?>

只需确保您的模型设置了 属性 cat_id。在你的控制器中的某个地方做一个

$model->cat_id = filter_input_array(INPUT_GET, 'cat_id');

    $modelArray = filter_input_array(INPUT_GET, 'nameofmodel');
    $model->cat_id = $modelArray['cat_id'];

如果你真的想像你那样做,可能你也必须在那里使用模型的名称。

    <?= $form->field($model, 'cat_id')->dropDownList(ArrayHelper::map(DeviceCats::find()->where(['is_deleted' => 'no'])->all(),'id','title'),['options' => [$_GET['SOMETHIGNHERE']['cat_id'] => ['selected'=>true]], 'prompt' => ' -- Select Category --']) ?>

终于解决了一个令人难以置信的变化。只是把selected的首字母改成了大写('selected'应该是'Selected')。 这是代码:

<?= $form->field($model, 'cat_id')->dropDownList(
ArrayHelper::map(DeviceCats::find()
->where(['is_deleted' => 'no'])->all(),'id','title')
,['options' => [$_GET['cat_id'] => ['Selected'=>'selected']]
, 'prompt' => ' -- Select Category --']) ?>

'Selected'必须大写 'S':

'options'=>['72'=>['Selected'=>true]]