微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – find(),findOrFail(),first(),firstOrFail(),get(),list(),toArray()之间的区别是什么

这些方法有什么区别:

> 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数组.

注意:a collection一个增强阵列.它的功能与数组类似,但具有许多附加功能,如您在the docs中所见.

不幸的是,PHP不允许您在任何可以使用数组的地方使用集合对象.例如,在foreach循环中使用集合是可以的,将其传递给array_map则不行.类似地,如果您将参数类型提示为数组,PHP将不允许您将其传递给集合.较新版本的PHP具有可迭代的类型提示,可用于接受数组和集合.

如果您想从集合中获取普通数组,请调用all()方法.

1 findOrFail和firstOrFail方法抛出的错误ModelNotFoundException.如果你自己没有捕到这个异常,Laravel will respond with a 404,这是你大多数时候都想要的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐