Я работаю над Yii2. Я создаю несколько выпадающих списков с помощью настраиваемого массива, подобного этому.Как отображать выбранные значения в раскрывающемся списке нескольких вариантов в приложении Yii2?
В файле контроллера:
$all_groups = Groups::find()->where(['=','group_created_by',$id])->orwhere(new Expression('FIND_IN_SET(:id_to_find, group_managers)'))->addParams([':id_to_find' => $id])->all(); // fetch all values
$selected_groups = Groups::find()->where(['=','group_users',$updateId])->orwhere(new Expression('FIND_IN_SET(:id_to_find, group_users)'))->addParams([':id_to_find' => $updateId])->all(); // getting selected values
$all_groups_array = [];
foreach ($all_groups as $group) {
$all_groups_array[$group->id] = ucfirst($group->group_name);
}
На визуализации данных на представлении:
return $this->render('mngr_userupdate', [
'model' => $model,
'all_groups_array'=>$all_groups_array,
'case'=>$case,
'email_error' => 'false',
'applied_email' => '' ,
]);
так это создание массива, как это:
Array
(
[11] => Mngr1 group
[14] => Mngr 11 Group
)
В соперничает файл:
<?= $form->field($model, 'group_user[]')->dropDownList($all_groups_array,['multiple' => 'multiple']) ?>
Он отлично работает для создания формы для ввода данных. но как создать массив, в котором я могу отображать выбранные значения в форме обновления.
Edit:
Я просто нашел, что если я использую его как
<?= $form->field($model, 'group_user[]')->dropDownList($all_groups_array,['multiple' => 'multiple', 'options'=>['14'=>["Selected"=>true],'11' => ["Selected"=>true]]]); ?>
, то он начнет выводить значения, выбранные. то есть я должен создать массив как
[
'14'=>["Selected"=>true],
'11' => ["Selected"=>true]
]
Для этого я использую цикл, как следующим образом:
foreach ($selected_groups as $key => $value) {
$sel_groups_array[$value] = '' // what should be there or else
}
Как я могу создать этот массив, используя цикл?