我快要为此寻求解决方案了。我需要做一个非常简单的事情-将变量传递到自定义 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