Laravel 5 MethodNotAllowedHttpException после сбоя проверки (возврат к POST)

Я постараюсь быть как можно более подробным… Я новичок в Laravel…

Процесс:

1) У меня есть представление с формой, где покупатель должен ввести промо; У меня есть PromoRequest для проверки этого промо-кода;

2) У меня есть представление с формой, где, если промокод прошел правила, покупатель должен заполнить свои данные; У меня есть CustRequest для проверки его даты (например, «электронная почта» => «требуется» и т. д.)

3) И, наконец, у меня есть представление подтверждения, чтобы показать данные клиента с кнопкой проверки; если нахожу, я сохраняю данные в БД и отправляю электронное письмо

Проблема:

1) Первый шаг работает нормально

2) Во втором представлении, если мое правило проверки не работает (например, нет электронной почты), я получаю MethodNotAllowedHttpException. Я понимаю, что если проверка надписи не проходит (нет электронной почты), она возвращается к моей форме подписи, которая это метод POST… и это создает проблему…

Как мне разобраться???

Спасибо


person Philippe H    schedule 12.10.2016    source источник
comment
Обычно это вызвано отправкой запроса POST на маршрут GET или наоборот. Можете ли вы объяснить немного дольше? вы показываете форму в маршруте POST?   -  person Taha Paksu    schedule 12.10.2016


Ответы (1)


Вероятно, это слишком поздно, однако я столкнулся с этим вопросом, поскольку у меня была такая же проблема, и я подумал, что опишу, что я сделал по ошибке...

Для себя я создавал сайт, на который пользователи могли бы отправлять фотографии. Когда пользователь нажимал «добавить фото», он попадал на страницу, где ему нужно было установить флажок, чтобы принять правовую оговорку. Эта форма с флажком была POST-запросом. После того, как они примут его, они будут перенаправлены на страницу отправки ... КОТОРАЯ ТАКЖЕ БЫЛА ФОРМОЙ С ПОЧТОВЫМ ЗАПРОСОМ. Это была моя проблема: спина к спине страниц запросов POST. Если пользователь ввел неверные данные в форму отправки или вообще не ввел данные в поле, Laravel пытается по существу нажать кнопку «Назад» в вашем браузере и оставить форму заполненной теми данными, которые ввел пользователь. Проблема в том, что кнопка «назад» (или то, как пользователь пришел на эту страницу) была из запроса POST, поэтому она не могла этого сделать. Это дало мне ошибку, описанную выше. Как только я переключил страницу юридического принятия на форму запроса GET и обновил маршрут, чтобы он соответствовал, все заработало нормально. Это была глупая ошибка с моей стороны, я просто надеюсь смягчить это разочарование для других, пока они учатся разрабатывать в Laravel.

person 2Foot    schedule 29.09.2017