在Laravel 5.5中,我正在检查profile->user->membership->id
是否等于user->membership->id
,如下所示:
if ($profile->user->membership->id != $user->membership->id ) {
return Response::json(array(
'error' => true,
'status_code' => 400,
'message' => 'profile_does_not_belong_to_membership',
));
}
这样可行,但如果profile->user->membership
不存在则会出现错误:
尝试获取非对象错误的属性。
我需要先检查一下,还是有办法将它与原始声明结合起来?
答案 0 :(得分:2)
使用optional()
帮助程序:
optional($profile->user->membership)->id
来自the docs:
optional
函数接受任何参数,并允许您访问该对象的属性或调用方法。如果给定对象为null
,则属性和方法将返回null
而不是导致错误