资讯专栏INFORMATION COLUMN

Laravel 的 optional 辅助函数

ymyang / 1348人阅读

摘要:所以,这个时候,就可以派上用场了我们只需要这样获取用户的地址信息就好这个时候,即使为空值,这一行代码也不会报错,而是会显示一个空的字符串出来。

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

这个方法的应用场景是什么呢?其实如果你多写代码的话,经常会遇到类似下面的报错信息:

Call to a member function on null object...

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

User 的体系中,我们也有 Profile 的 Model 文件,而一个 User 拥有一个 ProfileProfile 中包含用户的地址信息)

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() 来做保险了!

关注公众号 codecasts ,每天更新 PHP Laravel 技能

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26098.html

相关文章

  • 十个推荐使用 Laravel 辅助函数

    摘要:文章转自包含各种全局辅助函数。返回应用程序中公共目录的完全限定的绝对路径。要解决此问题,只需运行以下命令即可使用包函数将字符串转换为复数形式。该值将被传递给闭包,然后该值将被返回。方法返回布尔值,但由于用了,所以它将返回。 showImg(https://segmentfault.com/img/remote/1460000018944915?w=1408&h=846); 文章转自:h...

    CastlePeaK 评论0 收藏0
  • 10个非常好用 Laravel 辅助函数

    摘要:要解决此问题,只需运行以下命令即可使用包函数将字符串转换为复数形式。函数接受两个参数一个值和一个闭包。该值将被传递给闭包,然后该值将被返回。更新方法返回布尔值,但由于用了,所以它将返回。这对调试非常有用。函数根据给定的字符串生成一个友好的。 Laravel包含各种全局辅助函数(helper), 你可以使用它们使开发工作流程更加轻松。 在这里,我将会列一下10个最好的 Laravel h...

    liangzai_cool 评论0 收藏0
  • 十个推荐使用 Laravel 辅助函数

    摘要:函数允许你将多维数组转换为使用点符号的一维数组。返回应用程序中公共目录的完全限定的绝对路径。要解决此问题,只需运行以下命令即可使用包将字符串转换为复数形式。接受两个参数一个值和一个闭包。该值将被传递给闭包,然后该值将被返回。 array_dot() 函数允许你将多维数组转换为使用点符号的一维数组。 $array = [ user => [username => somethin...

    琛h。 评论0 收藏0
  • Laravel 路由设置

    摘要:本质是将为的请求转化为追加的组内请求,对应的匿名函数依然是为的请求假如为,则返回优先从设置里面取值,没有则生成单数形式的字符串,并将字符替换为小结资源类型的构造,实际上会被转化为构造多个默认资源的路由,本质依然是基本构造 Laravel 路由 路由构造总览 构造方法有: Route::get、Route::post、Route::put、Route::patch、Route::del...

    张红新 评论0 收藏0
  • Laravel 5.8 前瞻

    摘要:发布于年月,从那时起大约每六个月会发布一次的新版本。将会支持相对较新的来管理项目中的环境文件。弃用和辅助函数所有的和全局辅助函数都已弃用,将在中删除。将返回更干净的相同值。和通知和通知已从主项目中删除,并提取到第三方软件包中。 showImg(https://segmentfault.com/img/remote/1460000018269419?w=585&h=400); 无论是从零...

    tianhang 评论0 收藏0

发表评论

0条评论

ymyang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<