为了账号安全,请及时绑定邮箱和手机立即绑定

评估关系的存在是对还是错 - Laravel 关系

评估关系的存在是对还是错 - Laravel 关系

PHP
蝴蝶刀刀 2021-10-22 15:10:47
我正在尝试创建如下策略:public function view(User $user, PersonalStatement $personalStatement){    return $user->applicant->id == $personalStatement->applicant_id || $user->mentor->exists();}然后,我使用存在导师关系但不存在申请人关系的用户模型对其进行测试,并且出现错误:试图获取非对象的属性“id”我相信这是因为在这种情况下 user->applicant 返回 null 。评估模型是否具有响应为真或假的关系的最佳方法是什么?如果关系不存在,则使用exists() 方法返回null。
查看完整描述

2 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

要处理null大小写,您可以使用optionalLaravel 助手,它允许您调用任何属性/方法,即使您的源为 null,它也返回 null 而不是抛出异常。


public function view(User $user, PersonalStatement $personalStatement)

{


    return optional($user->applicant)->id == $personalStatement->applicant_id || $user->mentor->exists();


}


查看完整回答
反对 回复 2021-10-22
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

要检查“用户”模型的“申请人”关系,请尝试

$user->applicant()->exists()

或者

$user->applicant()->count()

注意:关系后面的括号确实很重要。


查看完整回答
反对 回复 2021-10-22
  • 2 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信