Обновлено, надеюсь, уточнить. Использование 4 более привычно и четко определяет, что вы делаете, поэтому нет никакой путаницы в реализации кода между рендерингом существующей формы и рендерингом новой формы, сохранением формы и созданием формы. Лучше всего разбить все это.

ли лучшая практика для PRG паттернов с MVC?
В этом уроке:
http://www.theserverside.com/news/1365146/Redirect-After-Post
Предлагаемое решение требует 4 действия:
Create_Item (POST) => «сбрасывает» форму и перенаправляет на Display_Item
Display_Item (GET) => показывает форму (с временными данными и ошибками, если существует)
Store_Item (POST) => попытаться сохранить данные в БД, если ошибки, сохранить ошибки и перенаправить на Display_Item, если успех перенаправить на Display_Stored
Display_Stored (GET) => показывает созданный элемент или сообщение об успехе, tec.

Теперь я думаю, что иметь первое действие с POST - это проблема, потому что мы не можем запустить форму со ссылкой. Использование GET вCreate_Item кажется лучшим вариантом.
А также, мы можем сделать то же самое с 3-мя действиями (используя одно и то же действие для Create_Item и Display_Item, но с дополнительнымфлаг для сброса формы, например:
http://www.example.com/controller/Create_Item/?reset=1

А также мы можем сделать то же самое всего с 2 действиями, потому что мы можем использовать, если внутриCreate_Item для проверки, является ли запрос GET или POST (поэтому мы комбинируем Display_Item с Store_Item).

А также мы можем сделать то же самое всего с одним действием, потому что у нас может быть дополнительный флаг (в запросе URL или в сеансе) для отображения результатов вместо формы:
ПОЛУЧИТЬhttp://www.example.com/controller/Create_Item/?reset=1 => показывает новую форму и перенаправляет на следующий URL
ПОЛУЧИТЬhttp://www.example.com/controller/Create_Item/ => показывает форму с временными данными и ошибками, если существует
ПОЧТАhttp://www.example.com/controller/Create_Item/ => сохранить ошибки в temp или данные в БД (и установить флаг сеанса для успеха) и перенаправить на вышеуказанный URL или следующий URL
ПОЛУЧИТЬhttp://www.example.com/controller/Create_Item/ => если $ _SESSION ['success'] показать результаты

Лично мне нравится идея иметь 4 действия, но у меня нет никакого реального преимущества перед другими вариантами. Но я не чувствую себя в безопасности, выбирая свой дизайн без реальных критериев.
Кто-нибудь знаетПРОФИ а такжеМИНУСЫ каждого дизайна (если есть)?

Например, я вижу очиститель 4 действий, но если мы хотим изменить способ сохранения временных данных, нам нужно изменить их в 4 местах.

Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос