Есть таблицы:
kit (kit_id,name) //наборы
field (field_id,name) //поля
И связующая таблица:
FieldToKit(id,kit_id,field_id)
Связь один (kit) ко многим (fields), то бишь одному набору можно назначить много полей.
В представлении изменения "набора" нужно вывести multiple select с "полями", не пойму как формировать модель чтобы в select поля текущего набора были выбраны ("selected")
контроллер наборов:
Код: Выделить всё
public function actionUpdate($id) {
$model = Kit::findOne(['id' => $id]);
$model_fieldToKit = FieldToKit::findAll(['kit_id'=>$id]);//собираем поля текущего набора
.............
return $this->renderAjax('_form', [
'model' => $model,
'fields' => Field::find()->asArray()->all(), //все поля
'model_fieldToKit' => $model_fieldToKit
]);
Код: Выделить всё
...........
<?= $form->field($model_fieldToKit, "FieldToKit[field_id][]", ['options' => ['class' => 'col-11']])->dropDownList(ArrayHelper::map($fields, 'id', 'name'), ['class' => 'form-select','multiple'=>true])->label(false);?>
..........
т.е. я не могу передать в $form->field массив моделей? как тогда быть?