检查是否存在成员资格

时间:2018-02-16 17:39:41

标签: laravel laravel-5.5

在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不存在则会出现错误:

  

尝试获取非对象错误的属性。

我需要先检查一下,还是有办法将它与原始声明结合起来?

1 个答案:

答案 0 :(得分:2)

使用optional()帮助程序:

optional($profile->user->membership)->id

来自the docs

  

optional函数接受任何参数,并允许您访问该对象的属性或调用方法。如果给定对象为null,则属性和方法将返回null而不是导致错误