在 laravel 新版本当中,有一个非常有用的辅助方法:optional()
这个方法的应用场景是什么呢?其实如果你多写代码的话,经常会遇到类似下面的报错信息:
Call to a member function on null object...
这其实是在我们的代码中存在着某个对象为空,所以在我们调用方法或者获取属性的时候就会报出以上错误信息。比如我们举个例子:
在 User 的体系中,我们也有 Profile 的 Model 文件,而一个 User 拥有一个 Profile (Profile 中包含用户的地址信息)
public function profile(){
return $this->hasOne(Profile::class);
}然后在我们 User 的信息页面,我们希望通过下面的代码获取 User 的地址:
$user->profile->address;
如果在数据库中,我们没有该 User 对应的 Profile,这个时候就会出现文章开始说到的类似错误了。
所以,这个时候,
optional()就可以派上用场了
微厦线上培训考试系统查看详情微厦在线学习云服务平台是一款基于B/S架构的在线教育系统,将“在线视频学习、在线试题练习、在线同步考试”紧密相联,打造“学、练、考”于一体的在线教育系统,能够利用电脑、手机、微信等多种设备进行学习,方便学员利用碎片化时间进行随时随地的学习。并带有“分享、分润、分销”的辅助功能,对于平台推广、课程销售起到非常有效的帮助。适用类别:个人、单位、老师、大学、教育机构适用行业:企业培训、教育机构、高等教育
0
![]()
我们只需要这样获取用户的地址信息就好:
optional$user->profile)->address
这个时候,即使 profile 为空值(null),这一行代码也不会报错,而是会显示一个空的字符串出来。
是不是非常有用!有了 optional() 这个辅助函数之后,在很多类似的代码中,在你不确定是否该对象会为 null 的时候,就可以加上 optional() 来做保险了!


