Шаблон представляет собой GET
пустую форму, измените содержимое формы, затем POST
это на сервер, который затем отправляет перенаправление на другую страницу, которая является GET
, возможно, на страницу, говорящую Form submitted successfully.
. (Get ->) пост-> Redirect-> Get
Первое действие не совсем POST
. Это конечный результат заполнения формы и ее отправки. В руководстве больше говорится о том, что делать после этого POST
, так как если вы не выполняете перенаправление, пользователь остается на странице с сообщением Form submitted successfully
, где он может просто нажать F5 и сделать еще один POST
. Однако с этим перенаправлением они попадают на страницу результатов через безопасный GET
, который не приведет к двойному сообщению.
Что касается реализации, у каждого из вас должно быть свое собственное действие на стороне сервера. Это соответствует реализации MVC / RESTful.
- GET / url? Action = new -> Вызовите метод new_form () для отображения новой формы
- POST / url? Action = create -> Вызовите метод create_form () для сохранения и перенаправления в / url? Action = show & id = 1234
- GET / url? Action = show & id = 1234 -> Вызвать метод show_form () для отображения результата
- POST / url? Action = save & id = 1234 -> Вызовите метод save_form () для сохранения и перенаправления
Вместо этого вы можете использовать 3 действия, если хотите, чтобы 2-е действие вызывало save
. Большинство соглашений REST / CRUD используют 4, но выбор остается за вами. Преимущества те же, что и при прохождении маршрута REST / MVC.
См. Также эти ресурсы:
- RESTful веб-сервисы
- Это охватывает типичные соглашения для контроллеров RESTful. Он охватывает рельсы, но все еще применяется к PHP, если вы хотите пойти по маршруту REST.