Сначала проверяется маршрут перед переходом к промежуточному программному обеспечению и контроллеру ...
Так что, если маршрут не был найден, скрипт не знает, на какое промежуточное ПО или контроллер перейти ...
-
Вот хороший пример использования, например, кто-то хочет определить следующие маршруты
Route :: get ('/ question / {id}', 'QuestionController @ view');
GET /question/1
является общедоступным для всех пользователей и возвращает сам вопрос (только для чтения)
но
Route :: patch ('/ question / {id}', 'QuestionController @ edit') -> middleware ('auth');
PATCH /question/1
только аутентифицированный пользователь может редактировать вопрос ...
Так что допустимо, чтобы разные методы могли иметь разные промежуточные программы или не иметь промежуточных программ для одного и того же маршрута ...
И что некоторые методы не определены / разрешены
-
Метод не поддерживается, поскольку ваш определенный маршрут предназначен только для удалений, как в ::delete
методе, который вы использовали
Запрос на удаление - это либо запрос HTTP POST с запросом "_method" и значением "delete", либо в поддерживаемом браузере запрос HTTP DELETE
Когда пользователь вводит URL-адрес вручную в своей адресной строке, это GET-запрос, который может быть обработан этим методом маршрута :: get
Доступные методы маршрутизации из последней документации: (https://laravel.com/docs/5.8/routing)
Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);
Плюс специальный маршрут ::any
, который принимает любой метод
В laravel, если пользователь достигает URL, который определен, но с методом, который не определен в маршрутах, вы получаете этот «Метод не поддерживается»
Ошибка неподдерживаемого метода не имеет отношения к авторизации промежуточного программного обеспечения в этом случае ... речь идет только о маршрутизации