Страница 1 из 1

Одинаковые поля формы.

Добавлено: 2020.07.17, 16:40
vv-off
Здравствуйте!
Есть список сущностей которые нужно редактировать в форме.
Создаю DataProvider, передаю его во view.
Во view отображаю через ListView.
В каждом item ListView есть поля формы, они получаются одинаковыми, так как item-в несколько.
Подскажите пожалуйста как можно сохранить и валидировать их?

Re: Одинаковые поля формы.

Добавлено: 2020.07.17, 17:20
vv-off
Реализовал вот так:

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

if (Yii::$app->request->post()) {
            $request = Yii::$app->request->post();
            foreach ($request['NameForm'] as $item) {
                
                foreach ($item as $attr => $value) {
                    $productForm->$attr = $value;
                }
                
                if ($productForm->validate()) {
                   //сохраняем
                }
                
            }
        }
Но не уверен, может есть более интересные способы.

Re: Одинаковые поля формы.

Добавлено: 2020.07.18, 11:34
skynin
vv-off писал(а): 2020.07.17, 17:20 Реализовал вот так:

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

if (Yii::$app->request->post()) {
            $request = Yii::$app->request->post();
            foreach ($request['NameForm'] as $item) {
                
                foreach ($item as $attr => $value) {
                    $productForm->$attr = $value;
                }
                
                if ($productForm->validate()) {
                   //сохраняем
                }
                
            }
        }
Но не уверен, может есть более интересные способы.
воспользуйтесь Gii генератором, чтобы посмотреть как правильно

Он сделает как-то так:

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


if ($productForm->load(Yii::$app->request->post()) && $productForm->save())  {
// успешно сохранили
// redirect на продолжение список сущностей, или на просмотр
}

// redirect на продолжение редактирования