Как правильно создать multiple dropdownlist в ActiveForm

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
ikarus
Сообщения: 9
Зарегистрирован: 2023.08.10, 13:23

Как правильно создать multiple dropdownlist в ActiveForm

Сообщение ikarus »

Здравствуйте, очень прошу помощи!
Есть таблицы:
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":

Код: Выделить всё

...........
<?= $form->field($model_fieldToKit, "FieldToKit[field_id][]", ['options' => ['class' => 'col-11']])->dropDownList(ArrayHelper::map($fields, 'id', 'name'), ['class' => 'form-select','multiple'=>true])->label(false);?>
..........
в итоге получаю ошибку: Exception 'Error' with message 'Call to a member function hasErrors() on array' ,
т.е. я не могу передать в $form->field массив моделей? как тогда быть?
ikarus
Сообщения: 9
Зарегистрирован: 2023.08.10, 13:23

Re: Как правильно создать multiple dropdownlist в ActiveForm

Сообщение ikarus »

Разобрался, вопрос закрыт
Ответить