我使用中间件创建了路由组。它工作正常。
但我有一个问题,如果我导航网址
http://localhost/laravel-news/public/admin/add-post-new
这没有登录,然后重定向到访客主页
但如果我导航到
http://localhost/laravel-news/public/add-post-new
没有管理员在网址然后它返回空白页面。现在我的问题是如何显示页面找不到404页面。我正在使用laravel 5.1
谢谢
更新
Route::group(['middleware' => 'admin'], function () {
Route::get('add-post-new', function () {
// dd('something');
return view('a.addPost');
});
Route::post('/add-post-new','PostsController@addPost');
Route::get('/all-post', function () {return view('a.all_post'); });
});
答案 0 :(得分:12)
在/resources/views/errors/
文件夹中创建404.blade.php页面,如果路径不存在,将显示该页面
而不是非现有路线的laravel错误:
Sorry, the page you are looking for could not be found.
1/1 NotFoundHttpException in RouteCollection.php line 161:
/resources/views/errors/
文件夹然后只需用
调用它abort(404);
例如,制作一条这样的路线:
Route::get('/404', function () {
return abort(404);
});
答案 1 :(得分:2)
使用此设置404路线。然后使用该路线中的任何视图文件
App::error(function(Exception $exception, $code)
{
Log::error($exception);
if (Config::get('app.debug') == false) {
return Redirect::route('404');
}
});
答案 2 :(得分:0)
你可以使用abort();方法并在错误文件夹中创建一个视图,正如文档中所述。
Laravel将自动在那里获取错误页面并显示它。
答案 3 :(得分:0)
try{
return view($SomeInvalidView);
} catch (Exception $e){
abort(404);
}