这些方法有什么区别:
> find()
> findOrFail()
>第一个()
> firstOrFail()
> get()
> list()
> toArray()
我一直在使用它们,每个都给出了不同的结果,有时我需要在get()的末尾添加toArray(),因为我的函数期待一个数组.其他方法也不会产生数组吗?
解决方法
> find($id)获取一个id并返回一个模型.如果不存在匹配模型,则返回null.
> findOrFail($id)获取一个id并返回一个模型.如果不存在匹配的模型,则抛出error1.
> first()返回数据库中找到的第一条记录.如果不存在匹配模型,则返回null.
> firstOrFail()返回数据库中找到的第一条记录.如果不存在匹配的模型,则抛出error1.
> get()返回与查询匹配的模型集合.
> pluck($column)返回给定列中的值的集合.在以前版本的Laravel中,此方法称为列表.
> toArray()将模型/集合转换为简单的 PHP数组.
> findOrFail($id)获取一个id并返回一个模型.如果不存在匹配的模型,则抛出error1.
> first()返回数据库中找到的第一条记录.如果不存在匹配模型,则返回null.
> firstOrFail()返回数据库中找到的第一条记录.如果不存在匹配的模型,则抛出error1.
> get()返回与查询匹配的模型集合.
> pluck($column)返回给定列中的值的集合.在以前版本的Laravel中,此方法称为列表.
> toArray()将模型/集合转换为简单的 PHP数组.
注意:a collection是一个增强阵列.它的功能与数组类似,但具有许多附加功能,如您在the docs中所见.
不幸的是,PHP不允许您在任何可以使用数组的地方使用集合对象.例如,在foreach循环中使用集合是可以的,将其传递给array_map则不行.类似地,如果您将参数类型提示为数组,PHP将不允许您将其传递给集合.较新版本的PHP具有可迭代的类型提示,可用于接受数组和集合.
1 findOrFail和firstOrFail方法抛出的错误是ModelNotFoundException
.如果你自己没有捕到这个异常,Laravel will respond with a 404,这是你大多数时候都想要的.