Laravel 4 - 使用自定义消息处理404s

Luk*_*yce 5 php error-handling exception-handling http-status-code-404 laravel

根据Laravel 4 文档,我可以使用自定义响应抛出404:

App::abort(404, 'My Message');
Run Code Online (Sandbox Code Playgroud)

然后,我可以使用自定义页面处理所有404:

App::missing(function($exception)
{
    return Response::view('errors.missing', array(), 404);
});
Run Code Online (Sandbox Code Playgroud)

如何以与通用Laravel错误页面相同的方式将"我的消息"传递到视图.

谢谢!

Rub*_*zzo 5

您可以通过Exception参数捕获您的消息

App::missing(function($exception)
{
    $message = $exception->getMessage();
    $data = array('message', $message);
    return Response::view('errors.missing', $data, 404);
});
Run Code Online (Sandbox Code Playgroud)

注意:代码可以减少,为了清楚起见,我这样写了.


Dis*_*oat 5

在Laravel 5中,您可以为/resources/views/errors目录中的每个响应代码提供Blade视图.例如,将使用404错误/resources/views/errors/404.blade.php.

手册中未提及的是视图内部您可以访问该$exception对象.因此,您可以使用它{{ $exception->getMessage() }}来获取您传递的消息abort().

  • 不能被投赞足够.我喜欢Laravel,但它的"阅读框架"文档方法可能有点令人沮丧. (2认同)