选中Yii2 dropDownList标记选项

sza*_*pio 3 selected drop-down-menu yii2

嗨,我正在尝试使用选定的值创建一个下拉列表,但仍然没有进展,下拉是渲染,但始终选择第一个选项.

$company_id = (int) $params['company_id'];
$options = [
    'options' => [
         $company_id => [
            'selected' => 'selected',
            'label' => 'test'
        ]
     ]
];
echo $form->field($model, 'company_id')->dropDownList($companies_list, $options);
Run Code Online (Sandbox Code Playgroud)

该代码有什么问题?我编辑了我的代码,并在我的选项中设置了'label'=>'test',这样可行,但仍未选中

好的解决方案,在我在renderSelectionOptions方法中找到的框架代码中找到:

$attrs = isset($options[$key]) ? $options[$key] : [];
$attrs['value'] = (string) $key;
$attrs['selected'] = $selection !== null &&
    (!is_array($selection) && !strcmp($key, $selection)
    || is_array($selection) && in_array($key, $selection));
Run Code Online (Sandbox Code Playgroud)

所以我需要做的就是:

$model->company_id = $company_id;
Run Code Online (Sandbox Code Playgroud)

在渲染部分之前

Tah*_*hir 9

只是未来访客的注意事项:

如果您正在使用,ActiveForm那么您的模型字段的值将用作所选值,但如果您不使用ActiveForm并生成带Html帮助程序的下拉列表,则dropDownList函数也接受另一个参数selection,您可以在其中传递要选择的值,如文档中所述