从模型的访问器抛出自定义Laravel异常时未调用方法render()
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从模型的访问器抛出自定义Laravel异常时未调用方法render()相关的知识,希望对你有一定的参考价值。
我有一个render方法的自定义异常,当我抛出它时会被调用,例如从控制器访问,但是当我从访问器抛出它时不会被调用。
所以当我做这样的事情时
public function getFooAttribute()
{
throw new CustomException();
}
并将dd()放入异常渲染方法
public function render()
{
dd('render is called');
}
我没有结果。
在某些特定情况下,处理程序无法按预期工作吗?
UPD:如我所见,在View层上抛出的错误处理可能存在问题:https://github.com/laravel/framework/issues/24658
看起来我基本上有相同的问题,但没有找到解释。
答案
您的render方法需要接受一个像这样被调用的参数。
if (method_exists($e, 'render') && $response = $e->render($request)) {
return Router::toResponse($request, $response);
}
以上是关于从模型的访问器抛出自定义Laravel异常时未调用方法render()的主要内容,如果未能解决你的问题,请参考以下文章