Есть ли способ проверить резервный маршрут для почтовых методов? Этот код работает для любого URL-адреса получения в моем файле маршрутов, т. Е. Я получаю этот ответ («Страница не найдена»), если я набираю неправильный URL-адрес GET.
Есть ли способ проверить то же самое для URL-адресов POST?
Route::fallback(function(){
return response()->json([
'status' => false,
'message' => 'Page Not Found.',
], 404);
});






Поместите этот сценарий в конец файла маршрутов.
Route::any('{url?}/{sub_url?}', function(){
return response()->json([
'status' => false,
'message' => 'Page Not Found.',
], 404);
})
Он автоматически обнаружит, если кто-то попытается использовать какие-либо другие маршруты, как показано ниже.
laravel_project_path/public/any_string
laravel_project_path/public/any_string/any_string
Это можно сделать только до 2 глубины. Используйте регулярное выражение с where().
use Request;
use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
В app/Exceptions/Handler.php замените функцию рендеринга
public function render($request, Exception $exception)
{
if (Request::isMethod('post') && $exception instanceof MethodNotAllowedHttpException) {
return response()->json([
'message' => 'Page Not Found',
'status' => false
], 500
);
}
return parent::render($request, $exception);
}
Или, если вы хотите как NotFound, так и MethodNotAllowed, тогда
public function render($request, Exception $exception)
{
if ((Request::isMethod('post') && $exception instanceof MethodNotAllowedHttpException) || (Request::isMethod('post') && $exception instanceof NotFoundHttpException)) {
return response()->json([
'message' => 'Page Not Found',
'status' => false
], 500
);
}
return parent::render($request, $exception);
}
Привет, Акаш, я соответственно изменил код и получаю эту ошибку Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException
изменить экземпляр на MethodNotAllowedHttpException. Пожалуйста, проверьте обновленный ответ
Оно работает. Спасибо. Просто нужно было добавить использование Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpEисключение;
Определите собственный резервный маршрут в конце вашего route/api.php
Route::any('{any}', function(){
return response()->json([
'status' => false,
'message' => 'Page Not Found.',
], 404);
})->where('any', '.*');
Вы можете использовать данный метод для проверки URL-адресов POST.
Route::fallback(function(){
return \Response::view('errors.404');
});
Это не работает. И данный код теперь также не работает с URL-адресом GET. И нужно ли мне что-то передавать в {url}?