Как отобразить выбранные значения в раскрывающемся списке нескольких вариантов в приложении 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 ) 

В файле vies:

  <?= $form->field($model, 'group_user[]')->dropDownList($all_groups_array,['multiple' => 'multiple']) ?> 

Он отлично работает для создания формы для вставки данных. но как создать массив, в котором я могу отображать выбранные значения в форме обновления.

Редактировать:

Я просто нашел, что если я использую его как

 <?= $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 } 

Как создать этот массив с помощью цикла?

Я создал решение своего вопроса. В случае, если у кого-то есть такая проблема, он может использовать цикл следующим образом:

 foreach ($selected_groups as $group) { $sel_groups_array[$group->id] = array("selected"=>true); } 

и в файле представлений вы можете использовать массив для отображения выбранных нескольких значений следующим образом:

 <?= $form->field($model, 'group_user[]')->dropDownList($all_groups_array,['multiple' => 'multiple','options' => $sel_groups_array]); ?> 

Поскольку структура для отображения нескольких выбранных значений в форме обновления, она должна выглядеть следующим образом:

 $form->field($model, 'group_user[]')->dropDownList($all_groups_array,['multiple' => 'multiple', 'options'=>['14'=>["Selected"=>true],'11' => ["Selected"=>true]]]); // here 14 and 11 I am using as example