Laravel возвращает MethodNotAllowedHttpException, если маршрутизация не существует - PullRequest
0 голосов
/ 05 марта 2019

Я создал маршрут для покупки предмета в laravel 5.7

Route::post('/buy/item', "userController@buy_item")->name('buy_item_form');

Все работает нормально, но когда я обновляю страницу (заменим GET Request), я получаю MethodNotAllowedHttpException . Маршрут GET не существует, он должен возвращать ошибку 404. Я не понимаю, почему его возвращают мне это исключение.

1 Ответ

2 голосов
/ 05 марта 2019

Вы используете сообщение, с сообщением у вас есть токен @csrf.Когда вы нажимаете кнопку «Обновить», вы выполняете метод GET вместо публикации, и, следовательно, вы получаете метод, не допускающий исключения.Если вы не отправляете данные, вы можете изменить их на метод get [Route :: get].

Если вы хотите принять 2 метода [post, get], чтобы получить лучший опыт и устранить возможные ошибки,Вы можете принять 2 метода на маршруте, например:

Route::match(array('GET','POST'),'/buy/item', 'userController@buy_item')->name('buy_item_form');

И на контроллере определить, что делать на основе метода.

if (Request::isMethod('get')){
    // redirect user
}

if (Request::isMethod('post')){
    // do logic for post method
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...