有没有一种方法可以检查后备方法的路线回退?此代码适用于我的路线文件中的任何获取url,即,如果我键入并输入了错误的GET URL,则会收到此响应(“找不到页面”。)。
有没有一种方法可以检查POST网址?
Route::fallback(function(){
return response()->json([
'status' => false,
'message' => 'Page Not Found.',
], 404);
});
答案 0 :(得分:2)
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);
}
答案 1 :(得分:2)
在route / api.php末尾定义自定义后备路由
Route::any('{any}', function(){
return response()->json([
'status' => false,
'message' => 'Page Not Found.',
], 404);
})->where('any', '.*');
答案 2 :(得分:1)
将此脚本放在路由文件的末尾。
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
答案 3 :(得分:0)
您可以使用给定的方法检查POST网址。
Route::fallback(function(){
return \Response::view('errors.404');
});