【问题标题】:Laravel 4 - Handling 404s With Custom MessagesLaravel 4 - 使用自定义消息处理 404
【发布时间】:2014-05-26 04:50:31
【问题描述】:

根据 Laravel 4 docs 我可以抛出一个带有自定义响应的 404:

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

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

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

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

谢谢!

【问题讨论】:

  • @totymedli 我想在“中止”函数中指定消息,而不是在通用处理程序中,所以我可以使用多条消息。我只是错过了$exception->getMessage() 行。感谢您的帮助。

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


【解决方案1】:

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

手册中没有提到的是在视图中您可以访问$exception 对象。因此您可以使用{{ $exception->getMessage() }} 来获取您传递给abort() 的消息。

【讨论】:

  • 无法获得足够的支持。我喜欢 Laravel,但它是“阅读框架”的文档方法可能有点令人沮丧。
【解决方案2】:

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

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

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

【讨论】:

  • 正是我所追求的!非常感谢。
  • 您必须在哪些文件和文件夹中添加此代码,@LukeJoyce ??
  • @pathros,如果你使用的是 Laravel 4.x,这应该是 app.php,我认为 Laravel 5 是类似的。
猜你喜欢
  • 1970-01-01
  • 2016-12-14
  • 2010-12-14
  • 2018-10-05
  • 2013-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多