我已经使用Laravel 5一段时间了,我正在为我的应用程序创建自己的日志记录层。
由于我想记录失败的查询,我决定为此创建一个服务提供商。
在服务提供商中,我得到了这段代码:
public function boot()
{
$this->app->error(function (QueryException $ex) {
dd('test');
});
}
这应该有效,但事实并非如此。我收到以下错误:
Call to undefined method Illuminate\Foundation\Application::error()
有人知道这里有什么改变。因为我在Application或Container类中找不到error
方法。尚未在论坛/ github repo上找到任何内容。
答案 0 :(得分:0)
在Laravel 5中,捕获错误的工作方式不同。 Source
您可以通过编辑app/Exceptions/Handler.php
方法在render()
内执行此操作:
public function render($request, Exception $e)
{
if ($this->isHttpException($e))
{
return $this->renderHttpException($e);
}
else if ($e instanceof QueryException)
{
dd('test');
}
else
{
return parent::render($request, $e);
}
}