Я использую Yii 2 ActiveForm, пытаясь сделать вариант 7 «по умолчанию».
Для этого мне нужно использовать массив параметров, но когда я это делаю, атрибут html «selected» не отображается вообще при просмотре источника HTML. У меня нет ошибок.
Если я использую другие параметры, такие как «label», он работает по назначению.
$form->field($model, 'date')->dropDownList($months, [ 'options'=>array( '7' => ['label' => 'JULY', 'selected'=>true], ), ]);
Согласно документам, любой «действительный» вариант принят, я предполагаю, что «выбранный» действителен, так как это раскрывающийся список HTML?
Это то, что генерируется:
<select id="log-date" class="form-control" name="Log[date]"> <option value="1">JANUARY</option> <option value="2">FEBRUARY</option> <option value="3">MARCH</option> <option value="4">APRIL</option> <option value="5">MAY</option> <option value="6">JUNE</option> <option value="7" label="label works fine">JULY</option> <option value="8">AUGUST</option> <option value="9">SEPTEMBER</option> <option value="10">OCTOBER</option> <option value="11">NOVEMBER</option> <option value="12">DECEMBER</option> </select>
Здесь был дан ответ: выбрана опция Yii2 dropDownList . Вам необходимо установить атрибут date:
$model->date = 7; $form->field($model, 'date')->dropDownList($months);
Существует также обсуждение от разработчиков: dropDownList pre Selection not rendering 'selected' Они предлагают либо определить значение по умолчанию для атрибута в методе init (), либо установить его непосредственно в представлении (это то же самое, что и ответ выше). Я тоже так делаю
$model->priority = $model->isNewRecord ? 2 : $model->priority; $form->field($model, 'priority',[ 'options'=>['class'=>'col-xs-12 col-md-3'] ])->dropDownList($priorityList)
Для выбора нет необходимости использовать «параметры»
$form->field($model, 'date')->dropDownList($months, '7');
В моей ситуации код для yii2:
<?= $form->field($model, 'status')->dropDownList($order_statuses, ['value' => !empty($model->status) ? $model->status : 1]); ?>
где 1 – id для выбранного по умолчанию значения.