【问题标题】:How to create a view to display ALL HTTP errors in Laravel?如何创建一个视图来显示 Laravel 中的所有 HTTP 错误?
【发布时间】:2019-12-26 12:47:37
【问题描述】:

我正在使用 Laravel 构建一个网站,并且我想要为 HTTP 错误提供自定义视图。

我发现我必须在views 文件夹中创建一个errors 文件夹,然后为每个错误创建一个文件,如下所示:

> views
    > errors
        - 404.blade.php
        - 504.blade.php
        ...

如果我想处理所有错误,我还没有完成...... 而且,我只想用同一个视图来显示所有的错误,只有错误号和错误信息要改变。

我想要的是只有一个视图,带有一个变量 $code(HTTP 错误代码),用于所有 HTTP 错误。

<h1 id='code'>{{ $code }}</h1>
<p id='message'>{{ $messages[$code] }}</p>

$message 是某种全局变量或配置变量。

所以问题实际上是如何使用错误代码的值在单个视图中重定向所有 HTTP 错误?

【问题讨论】:

标签: php laravel laravel-blade


【解决方案1】:

在异常类的渲染方法中你可以有这样的东西

public function render($request, Exception $e)
{

        return response()->view('errors.'.$e->getStatusCode(), [], $e->getStatusCode());

}

【讨论】:

  • OP 想要一个文件来处理所有事情,所以它可能更像是普通的旧 response()-&gt;view('errors')。也许将$e 传递给该视图,但是您建议的按状态代码方法在 Laravel 中已经是 default 了。也就是说,这个答案至少将 OP 指向正确的位置。
  • return response()->view('errors', ['code'=>$e->getStatusCode(), 'message'=>$e->getMessage()], $e ->getStatusCode());
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多