【发布时间】:2018-12-29 06:32:56
【问题描述】:
我刚刚阅读了 laravel 5.6 中的 documentation about errors,我正在尝试覆盖我的应用程序中 404 错误的行为。它几乎成功了,虽然还没有一切正常。
如文档所述:
[...] 如果您希望自定义 404 HTTP 状态代码的错误页面,请创建一个 resources/views/errors/404.blade.php。此文件将针对您的应用程序生成的所有 404 错误提供。
所以我做到了,它工作得很好...问题是应用程序调用视图时没有任何自定义变量,我想将一个包含一些数据的数组传递给它,因此我填充了 HTML 内容。所以我做了什么:
在Exception Handler类中,我为Not found exception (404)的情况添加了一个IF:
public function report(Exception $exception) {
if($this->isHttpException($exception) && $exception->getStatusCode() == 404){
return PagesController::return404();
}
parent::report($exception);
}
在控制器中:
public static function return404()
{
return view('errors.404')
->with('boards', BoardController::getAll());
}
但在视图内部,isset 方法仍然为变量 $boards 返回 false。假设BoardController::getAll() 方法正确地返回了它的值,这里有什么问题?
【问题讨论】:
标签: php laravel exception-handling laravel-5.6 php-7.2