Laravel 的 optional 辅助函数

在 Laravel 新版本当中,有一个很是有用的辅助方法:optional()php

这个方法的应用场景是什么呢?其实若是你多写代码的话,常常会遇到相似下面的报错信息:数据库

Call to a member function on null object...

这实际上是在咱们的代码中存在着某个对象为空,因此在咱们调用方法或者获取属性的时候就会报出以上错误信息。好比咱们举个例子:函数

User 的体系中,咱们也有 Profile 的 Model 文件,而一个 User 拥有一个 ProfileProfile 中包含用户的地址信息)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

相关文章
相关标签/搜索