Yii2 создание произвольного количества динамически наполняемых выпадающих списков
нужен совет... Наверное даже разъяснение... Руководствовался этой статьей https://www.yiiframework.com/doc/guide/2.0/ru/input-tabular-input
При таком представлении _form:
foreach ($tableFromTemplate as $index => $setting) {
echo $form->field($setting, '[$index]id_table')->dropDownList(
ArrayHelper::map($tableDesc, 'id', 'tag_table_desc')
)->label(false);
у меня создаются корректно наполненные выпадающие списки, но при построении dom ключ передается как [$index]... Соответственно я не могу сохранить измененные данные... Не могу понять ведь я передаю в значение формы значение ключа...
А в таком виде, foreach без реализации выпадающего списка через dropDownList, все работает, все сохраняется, ключ [$index]принимает значения и в dom передается в виде [0],1...
foreach ($tableFromTemplate as $index => $setting) {
echo $form->field($setting, "[$index]id_table")->label($setting->id_table);}
Контроллер
public function actionUpdate($id)
{
$model = $this->findModel($id);
$tableDesc =TagTable::find()->asArray()->all();//для массива имен таблиц
$idTemplate = $model->id;
$tableFromTemplate = TableFromTemplate::find()->where(['id_template' => $idTemplate])->indexBy('id')->all();//массив моделей для редактируемого шаблона
if (Model::loadMultiple($tableFromTemplate, Yii::$app->request->post()) && Model::validateMultiple($tableFromTemplate)) {
foreach ($tableFromTemplate as $setting) {
$setting->save(false);
}
return $this->redirect(['view', 'id' => $model->id]);
}
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->id]);
} else {
return $this->render('update', [
'model' => $model,
'category' => TemplateCategory::find()->all(),
'tableDesc' => $tableDesc,
'tableFromTemplate' => $tableFromTemplate
]);
}
}