我正在使用Yii 2 ActiveForm,试图制作选项7"默认"。
要做到这一点,我必须使用options数组,但是当我这样做时,我的html属性"选择"查看HTML源时根本没有呈现。我没有错。
如果我使用其他选项,例如"标签"它按预期工作。
$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>
答案 0 :(得分:6)
在这里回答:Yii2 dropDownList mark option selected。您需要设置日期属性:
$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)
答案 1 :(得分:0)
在我的情况下,yii2的代码是:
<?= $form->field($model, 'status')->dropDownList($order_statuses, ['value' => !empty($model->status) ? $model->status : 1]); ?>
其中1是默认选定值的id。