我快要为此寻求解决方案了。我需要做一个非常简单的事情-将变量传递到自定义 404页面布局。 Laravel通过创建像/resources/views/errors/404.blade.php这样的文件,可以轻松为http错误创建自定义 View ,但是为什么不轻松地将变量传递给它呢?

我尝试覆盖app/Exceptions/Handler.php渲染方法:

public function render($request, Exception $e)
    {
        if($this->isHttpException($e)){
            switch ($e->getStatusCode()) {
                case '404':
                      parent::render($request, $e)->flash();
                      $categories = Category::hierarchy();
                      return View::make('errors.404')->with(['categories' => $categories]);
                break;

                default:
                    return $this->renderHttpException($e);
                break;
            }
        }
        return parent::render($request, $e);
    }

但是无论出于什么原因,这都不起作用,而且我无法访问主布局中的category变量。我正在一个在错误页面上显示 header 的网站上工作,但是如果我无法将变量传递给错误 View ,则无法创建 header 。



任何人都有可能出什么问题的想法吗?这样做是不可能的吗?我读过,您可以传入异常并从中获取消息,但是这样做有什么意义呢?我不想重复整个布局并重写所有变量。

最佳答案

您正在寻找一个View Composer:https://laravel.com/docs/5.3/views#view-composers

10-05 20:45
查看更多