Fezas
Новичок
Здравствуйте, нужен совет... Наверное даже разъяснение...
Руководствовался этой статьей
Почему в представлении _form:
В foreach в представлении _form при построении dom ключ передается как [$index]... Соответственно я не могу сохранить измененные данные....
В таком виде, foreach без реализации выпадающего списка через dropDownList, все работает, все сохраняется, ключ принимает значения и в dom передается в виде [0],[1]...
Руководствовался этой статьей
Почему в представлении _form:
PHP:
<?php
foreach ($tableFromTemplate as $index => $setting) {
echo $form->field($setting, 'id_table[$index]')->dropDownList(
ArrayHelper::map($tableDesc, 'id', 'tag_table_desc')
)->label(false);
} ?>
PHP:
<?php foreach ($tableFromTemplate as $index => $setting) {
echo $form->field($setting, "[$index]id_table")->label($setting->id_table);
} ?>
PHP:
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
]);
}
}