Yii2 динамически создаваемые выпадающие списки через foreach?

Здравствуйте, нужен совет... Наверное даже разъяснение...
Руководствовался этой статьей

При таком представлении _form:
foreach ($tableFromTemplate as $index => $setting) {
        echo $form->field($setting, '[$index]id_table')->dropDownList(
        ArrayHelper::map($tableDesc, 'id', 'tag_table_desc')
    )->label(false);

в foreach в представлении _form при построении dom ключ передается как [$index]... Соответственно я не могу сохранить измененные данные....
foreach ($tableFromTemplate as $index => $setting) {
          echo $form->field($setting, "[$index]id_table")->label($setting->id_table);
}   ?>

А в таком виде, foreach без реализации выпадающего списка через dropDownList, все работает, все сохраняется, ключ [$index]принимает значения и в dom передается в виде [0],[1]...

Контроллер

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
]);
}

}
  • Вопрос задан
  • 179 просмотров
Решения вопроса 1
@ettychel
Посмотрите на свои кавычки
Справочка из гугла
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы