我是laravel的新手。我想根据请求的网址显示自定义404错误。
例:
site.com/somepage
和
site.com/admin/somepage
我看到了this的回答,但它适用于laravel 4.我找不到Laravel 5.1的等效答案
请帮忙。谢谢!
我的代码基于Abdul Basit
的建议//Handle Route Not Found
if ($e instanceof NotFoundHttpException) {
//Ajax Requests
if ($request->ajax() || $request->wantsJson()) {
$data = [
'error' => true,
'message' => 'The route is not defined',
];
return Response::json($data, '404');
} else {
//Return view
if (Request::is('admin/*')) {
return Response::view('admin.errors.404', array(), 404);
} else {
return Response::view('errors.404', array(), 404);
}
}
}
//Handle HTTP Method Not Allowed
if ($e instanceof MethodNotAllowedHttpException) {
//Ajax Requests
if ($request->ajax() || $request->wantsJson()) {
$data = [
'error' => true,
'message' => 'The http method not allowed',
];
return Response::json($data, '404');
} else {
//Return view
if (Request::is('admin/*')) {
return Response::view('admin.errors.404', array(), 404);
} else {
return Response::view('errors.404', array(), 404);
}
}
}
答案 0 :(得分:2)
您可以在render
中App\Exceptions\Handler
的{{1}}方法中为此做逻辑
app\Exceptions\Handler.php
答案 1 :(得分:0)
Laravel可以轻松显示各种HTTP状态代码的自定义错误页面。例如,如果要自定义404 HTTP状态代码的错误页面,请创建resources / views / errors / 404.blade.php。此文件将在您的应用程序生成的所有404错误中提供。应该命名此目录中的视图以匹配它们对应的HTTP状态代码。
答案 2 :(得分:0)
检查回退路由,您可以定义一个在没有其他路由与传入请求匹配时将执行的路由。回退路由应始终是应用程序注册的最后一条路由。 https://laravel.com/docs/5.8/routing#fallback-routes
Route::fallback(function () {
//Send to 404 or whatever here.
});