php辅助框架,【PHP开发框架】Laravel框架中辅助函数:optional ()函数的介绍

laravel框架中的辅助函数有很多,那么,在 Laravel 新版本中又有什么非常好用的辅助函数呢?接下来的这篇文章中,ki4网将给大家介绍一个非常有用的辅助方法: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() 就可以派上用场了

我们只需要这样获取用户的地址信息就好:

optional$user->profile)->address

这个时候,即使 profile 为空值(null),这一行代码也不会报错,而是会显示一个空的字符串出来。

是不是非常有用!有了 optional() 这个辅助函数之后,在很多类似的代码中,在你不确定是否该对象会为 null 的时候,就可以加上 optional() 来以防万一。

以上就是本篇文章的全部内容了,更多laravel内容请关注laravel框架入门教程。

相关文章推荐:

Laravel框架中常用的辅助函数的介绍

Laravel5.5新特性:preset命令的解析

相关课程推荐:

2017年最新的五个Laravel视频教程推荐

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/471938.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 清除字符串中的 emoji 表情

https://pypi.org/project/emoji/ pip install emoji字符串中间有 emoji 表情,替换掉。 text "🐰贝贝有点甜🐰" res emoji.demojize(text) # :rabbit_face:贝贝有点甜:rabbit_face:# 正则表达式替换为 r"想换的字符串&quo…

Linux CentOS7/RHEL7关闭ctrl+alt+delete功能键

这是本人测试的经过,纯粹记录来看看,最终解决方法在最后面,中间讲的是遇到的一些坑,可以略过不看!! 本人操作经验,转载请表明出处:http://www.cnblogs.com/huangjc/p/4536620.html L…

三角形css_纯 CSS 实现绘制各种三角形(各种角度)

一、前言三角形实现原理:宽度width为0;height为0;(1)有一条横竖边(上下左右)的设置为border-方向:长度 solid red,这个画的就是底部的直线。其他边使用border-方向&#…

java 排秩,lamd(java lambda表达式)

lamb n.羔羊, 小羊羔羊肉[皮](对孩子等的爱称)好宝宝, 小乖乖年幼、天真无邪的人; 羔羊般柔弱[温顺]的人[俚]容易上当的人(尤指在证券交易方面)[the Lamb ]【宗.lamd是什么意思land n. 国土;陆地;地面lamb n. 羔羊&…

LeetCode 1826. 有缺陷的传感器(枚举)

文章目录1. 题目2. 解题1. 题目 实验室里正在进行一项实验。为了确保数据的准确性,同时使用 两个 传感器来采集数据。 您将获得2个数组 sensor1 and sensor2,其中 sensor1[i] 和 sensor2[i] 分别是两个传感器对第 i 个数据点采集到的数据。 但是&#…

今天携程出事了:让我们来学习下http的响应码

就在今天,2015年5月28日,中国最大的旅游机票预订网站--携程网粗大事了。据传携程网的数据库被人物理删除了,而容灾备份的数据又无法正常使用,服务器全面遭受瘫痪。每小时给携程带来的损失约100万美元。巴拉巴拉,作为中…

java 删除txt,如何从.txt文件中删除2个值

if "A" in columns and int(columns[5]) < int(columns[3]):print(columns)print (columns[3]) - (columns[5])我在这做错了什么&#xff1f;不记得我最近开始编码 .这是完整的代码&#xff1a;import csvFILE_NAME "paintingJobs.txt" #I use this so…

LeetCode 1708. 长度为 K 的最大子数组

文章目录1. 题目2. 解题1. 题目 在数组 A 和数组 B 中&#xff0c;对于第一个满足 A[i] ! B[i] 的索引 i &#xff0c;当 A[i] > B[i] 时&#xff0c;数组 A 大于数组 B。 例如&#xff0c;对于索引从 0 开始的数组&#xff1a; [1,3,2,4] > [1,2,2,4] &#xff0c;因…

CSS3(animation, trasfrom)总结

CSS3(animation, trasfrom)总结 1. Animation 样式写法: 格式: -浏览器内核-keyframes 样式名 {} 标准写法(chrome safari不支持 keyframes [样式名] { 0% {left: 10px ; top : 20px;} 50% {left: 20px ; top : 30px;} 100% {left: 10px ; top : 20px;} }; Firefox -mz-keyfra…

LeetCode 1554. 只有一个不同字符的字符串(枚举)

文章目录1. 题目2. 解题1. 题目 给定一个字符串列表 dict &#xff0c;其中所有字符串的长度都相同。 当存在两个字符串在相同索引处只有一个字符不同时&#xff0c;返回 True &#xff0c;否则返回 False 。 进阶&#xff1a;你可以以 O(n*m) 的复杂度解决问题吗&#xff1…

matlab多径信道模型,多径时变信道模型的仿真与性能分析课程设计(样例3)

《多径时变信道模型的仿真与性能分析课程设计.doc》由会员分享&#xff0c;可免费在线阅读全文&#xff0c;更多与《多径时变信道模型的仿真与性能分析课程设计》相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索。1、形与输入信号波形越接近。因为信道幅频特性不理…

slice 转byte go_一文告诉你神奇的Go内建函数源码在哪里

Go内建函数源码&#xff0c;我好像在哪里见过你。 - 佚名1. 何为Go内建函数众所周知&#xff0c;Go是最简单的主流编程语言之一&#xff0c;截至Go 1.15版本&#xff0c;Go语言的关键字的规模依旧保持在25个&#xff1a;很多刚入门的gopher可能会问&#xff1a;像bool、byte、e…

modelsim 的高效使用

大概的思路&#xff1a; 1、往modelsim 添加仿真库。 2、将Verilog 文件&#xff0c;testbench文件提出。建好文件夹。比如uart仿真&#xff1a; uart_sim文件夹下&#xff1a;rtl文件夹&#xff0c;test_bench文件夹。test_bench文件夹下sim文件夹。 3、打开modelsim&#xff…

LeetCode 1586. 二叉搜索树迭代器 II(数组+栈)

文章目录1. 题目2. 解题1. 题目 实现二叉搜索树&#xff08;BST&#xff09;的中序遍历迭代器 BSTIterator 类&#xff1a; BSTIterator(TreeNode root) 初始化 BSTIterator 类的实例。 二叉搜索树的根节点 root 作为构造函数的参数传入。 内部指针使用一个不存在于树中且小于…

双光耦开关电源电路图_开关电源光耦的工作原理及典型接法

在一般的隔离电源中&#xff0c;光耦隔离反馈是一种简单、低成本的方式。但对于光耦反馈的各种连接方式及其区别&#xff0c;目前尚未见到比较深入的研究。而且在很多场合下&#xff0c;由于对光耦的工作原理理解不够深入&#xff0c;光耦接法混乱&#xff0c;往往导致电路不能…

LeetCode 1570. 两个稀疏向量的点积(哈希)

文章目录1. 题目2. 解题1. 题目 给定两个稀疏向量&#xff0c;计算它们的点积&#xff08;数量积&#xff09;。 实现类 SparseVector&#xff1a; SparseVector(nums) 以向量 nums 初始化对象。dotProduct(vec) 计算此向量与 vec 的点积。 稀疏向量 是指绝大多数分量为 0 …

matlab 中序列求极值的方法,Matlab中求序列的极值

我们知道&#xff0c;在Matlab中有专门求序列最大值和最小值的函数&#xff0c;分别是Max 和 Min&#xff0c;但是有时候我们不满足于求整个序列的最值&#xff0c;而是对序列的极值&#xff0c;也就是局部的最值感兴趣。对于解析函 数&#xff0c;这个比较简单&#xff0c;只要…

oracle rank 语法_oracle rank函数怎么用

首先创建示例表&#xff0c;再初始化几条测试数据create table t_score(id number primary key,student_id number(3),student_name char(8) not null,sub_name varchar2(20),score number(10,2));insert into t_score (id, student_id, student_name, sub_name, score)values…

@synchronized (object)使用详解

synchronized关键字代表这个方法加锁,相当于不管哪一个线 程A每次运行到这个法时,都要检查有没有其它正在用这个方法的线程B&#xff08;或者C D等&#xff09;,有的话要等正在使用这个方法的线程B&#xff08;或者C D&#xff09;运行完这个方法后再运行此线程A,没有的话,直接…

LeetCode 1644. 二叉树的最近公共祖先 II

文章目录1. 题目2. 解题1. 题目 给定一棵二叉树的根节点 root&#xff0c;返回给定节点 p 和 q 的最近公共祖先&#xff08;LCA&#xff09;节点。 如果 p 或 q 之一不存在于该二叉树中&#xff0c;返回 null。 树中的每个节点值都是互不相同的。 根据维基百科中对最近公共祖…