无法在Laravel中显示404错误的特定视图

时间:2014-05-08 22:57:03

标签: laravel laravel-4

我的app / start / global.php文件中包含以下代码:

App::missing(function($exception){
    return Response::view('missing', array('url' => Request::url()), 404);
});

我在app / view上有一个名为missing.blade.php的文件。但是,上面的代码给了我一个FatalErrorException,告诉我"在非对象上调用成员函数getPath()"。我从上面获得上述信息的其他漂亮错误页面的格式也搞砸了。

但是当我将global.php中的代码更改为以下内容时,一切正常:

App::missing(function($exception){
    return Response::make("Page not found", 404);
});

我不知道发生了什么。如何在找不到路线时显示特定视图?

修改 这是我的missing.blade.php文件:

@extends('master')

@section('header')
    <h2>404 Error</h2>
@stop

@section('content')
    <p>
        Unable to locate page.
    </p>
@stop

编辑2: 同样在我的app / views文件夹中,我有一个master.blade.php文件,其结构如下:

...
@yield('header')
...
@yield('content')
...

1 个答案:

答案 0 :(得分:2)

以下内容对您有用,并且您可以更好地控制其他错误:

App::error(function(Exception $exception, $code)
{
    Log::error($exception);
    switch ($code)
    {
        case 403:
            return 'Your 403 message';//or load any custom view
             break;
        case 404:
             return Redirect::to('/');//or load any custom view
              break;
        case 500:
             return 'Your 500 Error Message';//or load any custom view
              break;
        default:
            return Redirect::to('/');//or load any custom view
    }
});