find(), findOrFail(), first(), firstOrFail(), get(), list(), toArray()
这些方法有什么区别:
find()
findOrFail()
first()
firstOrFail()
get()
list()
toArray()
我一直在使用它们,每个结果都给出了不同的结果,有时我需要在最后添加,因为我的函数需要一个数组。其他方法不会也生成数组吗?toArray()
get()
这些方法有什么区别:
find()
findOrFail()
first()
firstOrFail()
get()
list()
toArray()
我一直在使用它们,每个结果都给出了不同的结果,有时我需要在最后添加,因为我的函数需要一个数组。其他方法不会也生成数组吗?toArray()
get()
find($id)
获取一个 id 并返回单个模型。如果不存在匹配的模型,则返回 。null
findOrFail($id)
采用一个 id 并返回单个模型。如果不存在匹配的模型,则会引发错误1。
first()
返回在数据库中找到的第一条记录。如果不存在匹配的模型,则返回 。null
firstOrFail()
返回在数据库中找到的第一条记录。如果不存在匹配的模型,则会引发错误1。
get()
返回与查询匹配的模型的集合。
pluck($column)
仅返回给定列中值的集合。在以前版本的Laravel中,此方法称为。lists
toArray()
将模型/集合转换为简单的 PHP 数组。
注意:集合是一个增强的数组。它的功能类似于数组,但具有许多附加功能,如您在文档中看到的那样。
不幸的是,PHP不允许你在任何地方使用数组来使用集合对象。例如,在循环中使用集合是可以的,将其传递给不是。同样,如果您将参数键入提示为 ,PHP 将不允许您将其传递给集合。从 PHP 7.1 开始,有可迭代
的 typehint,它可以用来接受数组和集合。foreach
array_map
array
如果要从集合中获取纯数组,请调用其 all()
方法。
1 and 方法引发的错误是 ModelNotFoundException
。如果你自己没有抓住这个例外,Laravel会用404回应,这是你大多数时候想要的。findOrFail
firstOrFail
可能事情发生了变化,但findorFail方法可以分别采用2个参数:和混合/数组参数。不需要传递第二个参数。也就是说,这将起作用:$id
$columns
$post = Post::findOrFail([1,2], ['title', 'subtitle']);
如果其中一个失败,则带有消息“模型没有查询结果...' 将被抛出。$ids
ModelNotFoundException