这些方法有什么不同:

  1. find()
  2. findOrFail()
  3. first()
  4. firstOrFail()
  5. get()
  6. list()
  7. toArray()

我一直在使用它们,每一个都会给出不同的结果,有时我需要在get()个的末尾加上toArray(),因为我的函数需要一个array.其他方法不也会生成数组吗?

推荐答案

  1. 100获取id并返回单个模型.如果不存在匹配模型,则返回null.

  2. 100接受一个id并返回单个模型.如果不存在匹配的模型,它将抛出错误1.

  3. 100返回在数据库中找到的第一条记录.如果不存在匹配模型,则返回null.

  4. 100返回在数据库中找到的第一条记录.如果不存在匹配模型,它会抛出一个错误1.

  5. 100返回与查询匹配的模型集合.

  6. 100只返回给定列中的值的集合.在以前版本的Laravel中,这种方法被称为lists.

  7. 100将模型/集合转换为简单的PHParray.


Note:a collection是一个增强型array.它的功能类似于数组,但有很多附加功能,如the docs所示.

不幸的是,PHP不允许在任何可以使用数组的地方使用集合对象.例如,在foreach循环中使用集合是可以的,而将集合传递给array_map则不是.类似地,如果您将hint参数键入array,PHP将不允许您向其传递集合.从PHP7.1开始,有一个iterable typehint,可以用来接受数组和集合.

如果您希望从集合中获得纯数组,请调用它的all()方法.


1findOrFailfirstOrFail方法引发的错误是ModelNotFoundException.如果你自己没有发现这个异常,Laravel will respond with a 404,这是你大多数时候想要的.

Php相关问答推荐

PHP 8.3类型类常数-关闭

在PHP中结合每周日程安排和特殊日子查找下一个可用日期

提交表格后的重定向不起作用

在WooCommerce中处理客户总支出中的退款

在WooCommerce中执行一次银行电汇确认付款代码

如何在WordPress中为特定自定义帖子类型自定义URL struct

在WooCommerce管理订单列表中显示项目总权重

根据产品类型显示或隐藏WooCommerce管理产品自定义字段

添加登录:需要app.yaml仍然允许所有拥有Google帐户的人访问

如何使用php一次更新两个数据库中的MySQL表

如何在php网站代码中清理浏览器缓存

筛选器具有多个查询之一

如何不重新查询模型A-&>;相关模型B-&>模型

WooCommerce中基于用户角色的不同产品差价

无额外字段的Laravel同步

在WooCommercel邮箱通知上添加来自Apaczka插件的选定交付点

如何正确判断 PHP 是否已正确配置为使用 DOMDocument?

在 groupBy laravel 5.7 中 Select 多列

如何在 Laravel 中修改嵌套数组的键?

Xdebug 不会在断点处停止