dsfds2343 2016-08-30 01:27
浏览 67
已采纳

如何在Laravel中将变量传递给http错误布局?

I am going crazy looking for a solution to this. I need to do a very simple thing - pass variables to the custom 404 page layout. Laravel lets you easily create a custom view for your http errors by creating a file like /resources/views/errors/404.blade.php but why doesn't it easily let you pass variables to it?

I tried overwriting app/Exceptions/Handler.php render method:

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);
    }

But for whatever reason this doesn't work and I cannot access the categories variable in my master layout. I'm working on a site that displays header on error pages but if I can't pass variables to the error view then my header cannot be created.

Undefined variable: categories

Anyone has an idea of what could be going wrong? Is it just impossible to do this? I have read you can pass the exception in and get a message from it but what's the point of that? I don't want to have to duplicate the entire layout and rewrite all variables.

  • 写回答

2条回答 默认 最新

  • du7979 2016-08-30 01:54
    关注

    You're looking for a View Composer: https://laravel.com/docs/5.3/views#view-composers

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 cplex运行后参数报错是为什么
  • ¥15 之前不小心删了pycharm的文件,后面重新安装之后软件打不开了
  • ¥15 vue3获取动态宽度,刷新后动态宽度值为0
  • ¥15 升腾威讯云桌面V2.0.0摄像头问题
  • ¥15 关于Python的会计设计
  • ¥15 聚类分析 设计k-均值算法分类器,对一组二维模式向量进行分类。
  • ¥15 stm32c8t6工程,使用hal库
  • ¥15 找能接spark如图片的,可议价
  • ¥15 关于#单片机#的问题,请各位专家解答!
  • ¥15 博通raid 的写入速度很高也很低