Форма с повторяющимися полями

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

Форма с повторяющимися полями

Сообщение TopClans » 2019.06.23, 18:57

Всем привет, я новичок в Yii2, фреймворк нравится своей логикой и архитектурой, но появилось несколько вопросов. Не смог найти на него ответ самостоятельно, а делать "как умею" не хочу, хочу "как правильно".
Требуется сохранить форму, где есть несколько повторяющихся полей, для примера подойдёт phpmyadmin: при создании таблицы нужно заполнить данные для каждого столбца, то есть несколько одинаковых полей (имя, тип, значение по умолчанию, размер и тд), и примерно такая же ситуация и у меня.
Виджет ActiveForm, конечно, может создать хоть 10 одинаковых полей, но имена у них одинаковые, и разумеется в POST запросе передаётся только одно из повторяющихся имён.

Вот как я решал эту проблему без фреймворка: выводил поля с именами items[0][name], items[1][name], items[2][name], и тд. Соответственно, все поля нормально передавались и далее обрабатывались с помощью foreach ($_POST['items] as $item).
А как быть в Yii2? Пробовал в опциях для ActiveWidget()->field() передавать имя поля, но появляется ошибка, видимо нельзя менять поле.
Пока для теста я написал так, умел, то есть items[0][name], но не работают "фишки" вроде валидации формы без перезагрузки страницы, да и в целом не по-джедайски.
В общем, вопрос такой: стоит ли пытаться реализовать всё это дело с помощью ActiveForm, или можно оставить "как есть"? Могут ли из-за этого в будущем возникнуть проблемы?

masson
Сообщения: 497
Зарегистрирован: 2012.07.03, 15:59

Re: Форма с повторяющимися полями

Сообщение masson » 2019.06.23, 19:14

TopClans писал(а):
2019.06.23, 18:57
Вот как я решал эту проблему без фреймворка: выводил поля с именами items[0][name], items[1][name], items[2][name], и тд. Соответственно, все поля нормально передавались и далее обрабатывались с помощью foreach ($_POST['items] as $item).
А как быть в Yii2?
Точно так же - https://www.yiiframework.com/doc/guide/ ... ular-input

Ответить