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

时间:2014-04-11 21:09:53

标签: php exception-handling error-handling laravel http-status-code-404

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

App::abort(404, 'My Message');

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

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

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

谢谢!

2 个答案:

答案 0 :(得分:5)

您可以通过Exception参数

捕获您的消息
App::missing(function($exception)
{
    $message = $exception->getMessage();
    $data = array('message', $message);
    return Response::view('errors.missing', $data, 404);
});

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

答案 1 :(得分:5)

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

手册中未提及的是视图内部您可以访问$exception对象。因此,您可以使用{{ $exception->getMessage() }}将您传递的信息传递到abort()