Yii 2 dropDownList - 未选择默认值

时间:2015-05-01 19:05:55

标签: php yii2

我正在使用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>

2 个答案:

答案 0 :(得分:6)

  1. 在这里回答:Yii2 dropDownList mark option selected。您需要设置日期属性:

    $model->date = 7;
    $form->field($model, 'date')->dropDownList($months);
    
  2. 开发人员也在讨论: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。