这个方法的应用场景是什么呢?其实如果你多写代码的话,经常会遇到类似下面的报错信息:
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() 就可以派上用场了
optional$user->profile)->address
这个时候,即使 profile 为空值(null),这一行代码也不会报错,而是会显示一个空的字符串出来。
是不是非常有用!有了 optional() 这个辅助函数之后,在很多类似的代码中,在你不确定是否该对象会为 null 的时候,就可以加上 optional() 来以防万一。
原文地址:https://www.jb51.cc/laravel/1199683.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。