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.