当发生ModelNotFoundException时,我希望返回JSON响应而不是默认的404错误页面。为了实现这一点,我在app\Exceptions\Handler.php
中编写了以下代码:
public function render($request, Exception $exception)
{
if ($exception instanceof ModelNotFoundException) {
return response()->json([
'error' => 'Resource not found'
], 404);
}
return parent::render($request, $exception);
}
然而,它并不起作用。当出现ModelNotFoundException时,Laravel只会显示一个空白页面。我发现即使在Handler.php
中声明一个空的render函数,Laravel也会在ModelNotFoundException上显示一个空白页面。
我该如何修复这个问题,以便能够返回JSON / 执行重写的render函数内部的逻辑?
ModelNotFoundException
的处理程序中必须使用NotFoundHttpException
异常?我遇到了一个问题,即NotFoundHttpException
也会对404错误抛出,但我想针对这些异常抛出不同的错误。 - Lukerayner