预先从数据库中选择列表框中的值

时间:2015-07-20 09:57:41

标签: listbox yii2

我有这样的列表框

$form->field($model, 'user_type_id[]')->listBox($UserTypesArray , array('multiple' => true));

其中$UserTypesArray是包含列表项的所有值和名称的数组,如

array('1'=>'john' , '1'=>'Doe' , '3' => 'bar')

我希望在页面加载时预先选择john和doe,因为它们是来自数据库的值。所以我开始编码并最终编写了&找到以下

 $data = array('1' => 'John', '2' => 'Doe', '3' => 'foo');
$selected   = array(
  '1' => array('selected' => 'selected'),
  '2' => array('selected' => 'selected'),
);
$htmlOptions = array('size' => '5','multiple' => 'true', 'options' => $selected);
echo $form->field($model, 'user_type_id[]')->listBox($data, $htmlOptions);

当我运行上面的代码时,它没有任何错误,但是没有预先选择列表框的选项。

变量$data$htmlOptions将填充我已完成代码的数据库中的实际值。但是,只要上面的代码不能使用静态值,它就不能使用数据库中的值。

任何人都知道如何在列表框中制作预选值

1 个答案:

答案 0 :(得分:0)

首先设置属性, 对于你的案例中的静态值

    $model->user_type_id =[1,2];
    $form->field($model, 'user_type_id')->listBox($UserTypesArray ,array('multiple' => true));