在 Laravel 新版本当中,有一个很是有用的辅助方法:optional()
php
这个方法的应用场景是什么呢?其实若是你多写代码的话,常常会遇到相似下面的报错信息:数据库
Call to a member function on null object...
这实际上是在咱们的代码中存在着某个对象为空,因此在咱们调用方法或者获取属性的时候就会报出以上错误信息。好比咱们举个例子:函数
在
User
的体系中,咱们也有Profile
的 Model 文件,而一个User
拥有一个Profile
(Profile
中包含用户的地址信息)this
public function profile(){ return $this->hasOne(Profile::class); }
而后在咱们 User
的信息页面,咱们但愿经过下面的代码获取 User
的地址:spa
$user->profile->address;
若是在数据库中,咱们没有该 User
对应的 Profile
,这个时候就会出现文章开始说到的相似错误了。code
因此,这个时候,
optional()
就能够派上用场了对象
咱们只须要这样获取用户的地址信息就好:图片
optional$user->profile)->address
这个时候,即便 profile
为空值(null
),这一行代码也不会报错,而是会显示一个空的字符串出来。
是否是很是有用!有了 optional()
这个辅助函数以后,在不少相似的代码中,在你不肯定是否该对象会为 null
的时候,就能够加上 optional()
来作保险了!字符串
关注公众号 codecasts ,天天更新 PHP Laravel 技能it