Пытаюсь понять best practices по работе с формами.
Есть метод контроллера edit(), который создает форму и возвращет вьюху.
В доках указано, что, по умолчанию, форма сабмитится сама на себя, но с методом POST.
Стало быть, метод update(), который принимает и апдейтит данные формы, уже не нужен?
То есть, в одном методе edit() мы и создаем форму, там же её обрабатываем и если всё ок, то адейтим данные?
Хорошая ли это практика?
С одной стороны избавляемся от лишнего метода в контроллере, с другой, в методе edit() делаем много всего.
Как бы разделение ответственности, один показывает форму, второй сохраняет данные. Все абсолютно логично, нет мешанины в методах, ненужных ифов и т.д..
Nikolino, потому что если форма не прошла валидацию, то у пользователя в командной строке будет урл /update, вместо /edit. Пользователь может обновить страницу или просто отдать ссылку другому. Соответственно работать не будет, т.к. запрос станет GET
Речь, само собой, если формы реализованы на backend-е. Если за форму отвечает frontend - это не критично
Nikolino, да, но тогда вам придется заморачиваться с тем, куда сохранить неверно введенные данные. Согласитесь неприятно когда в большой форме из-за опечатке в каком-нибудь поле она сбросится вся
Точкой удобнее сделать один метод. А там уже в зависимости от http-метода вызовите уже конкретные обработчики. Таким образом он будет делать не много, а ровно то, что от него требуется - обрабатывать http-запрос.