这些方法有什么不同:
-
find()
个 -
findOrFail()
个 -
first()
个 firstOrFail()
-
get()
个 list()
toArray()
我一直在使用它们,每一个都会给出不同的结果,有时我需要在get()
个的末尾加上toArray()
,因为我的函数需要一个array.其他方法不也会生成数组吗?
这些方法有什么不同:
find()
个findOrFail()
个first()
个firstOrFail()
get()
个list()
toArray()
我一直在使用它们,每一个都会给出不同的结果,有时我需要在get()
个的末尾加上toArray()
,因为我的函数需要一个array.其他方法不也会生成数组吗?
100获取id并返回单个模型.如果不存在匹配模型,则返回null
.
100接受一个id并返回单个模型.如果不存在匹配的模型,它将抛出错误1.
100返回在数据库中找到的第一条记录.如果不存在匹配模型,则返回null
.
100返回在数据库中找到的第一条记录.如果不存在匹配模型,它会抛出一个错误1.
100返回与查询匹配的模型集合.
100只返回给定列中的值的集合.在以前版本的Laravel中,这种方法被称为lists
.
100将模型/集合转换为简单的PHParray.
Note:a collection是一个增强型array.它的功能类似于数组,但有很多附加功能,如the docs所示.
不幸的是,PHP不允许在任何可以使用数组的地方使用集合对象.例如,在foreach
循环中使用集合是可以的,而将集合传递给array_map
则不是.类似地,如果您将hint参数键入array
,PHP将不允许您向其传递集合.从PHP7.1开始,有一个iterable
typehint,可以用来接受数组和集合.
如果您希望从集合中获得纯数组,请调用它的all()
方法.
1findOrFail
和firstOrFail
方法引发的错误是ModelNotFoundException
.如果你自己没有发现这个异常,Laravel will respond with a 404,这是你大多数时候想要的.