【发布时间】:2019-02-20 11:14:48
【问题描述】:
在 Laravel 5.5 中,我试图处理这样的错误异常...
try {
$fruits = Fruit::where('fruit_id', $user->fruit->id)->get();
}
catch(ModelNotFoundException $e) {
return Response::json(array(
'error' => true,
'status_code' => 400,
'response' => 'fruit_id not found',
));
}
但这给了我一个“试图获取非对象的属性”错误
对于 findorfail,相同的错误处理可以正常工作,我应该如何为 'where' 语句执行此操作?
【问题讨论】:
-
检查 $user->fruit->id 是否包含正确的值。试试打印吧。
-
它没有返回任何结果,我很期待。不过我的问题是如何捕获该错误并返回 JSON 响应
-
如果你使用catch (\Exception $e),结果会是什么?
-
$user->fruit->id抛出的异常与ModelNotFoundException不同。我不记得是哪个,但很容易检查 - 只需像@Sunil 所说的那样将其更改为\Exception $e,然后通过get_class($e)检查它是哪种类型并相应地更改行。 :) -
错误显示“异常”:“ErrorException”
标签: laravel