如果在laravel中找不到路线,如何显示404页面

时间:2015-08-24 08:00:22

标签: php laravel laravel-5.1

我使用中间件创建了路由组。它工作正常。

但我有一个问题,如果我导航网址

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'); });



});

4 个答案:

答案 0 :(得分:12)

更新13.11.2017

/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:
  1. /resources/views/errors/文件夹
  2. 中制作404.blade.php页面

    然后只需用

    调用它
    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将自动在那里获取错误页面并显示它。

http://laravel.com/docs/5.1/errors#http-exceptions

答案 3 :(得分:0)

try{
    return view($SomeInvalidView);
}  catch (Exception $e){
    abort(404);
}