【发布时间】:2019-04-12 04:50:54
【问题描述】:
有没有一种(简单的)方法可以将 Eloquent 集合转换为实际数组,而无需转换元素本身?
当我尝试将集合传递到像array_rand($collection) 这样的php 方法时遇到了麻烦。这给了我错误:array_rand() expects parameter 1 to be array, object given。
我通过使用 $collection->shuffle()->first(); 解决了这个问题,它工作正常,当然我可以遍历集合并将所有内容推送到一个数组中,但出于好奇,我想知道我是否忽略了某些东西。
更新/结论
Illuminate\Support\Collection 和 Illuminate\Database\Eloquent\Collection 上的 all 方法似乎有所不同。
Eloquent 集合上的 all 返回一个支持集合,支持集合返回一个数组。
所以要获得一组 Eloquent 模型,您需要使用 SomeModel::all()->all();
【问题讨论】:
标签: php arrays laravel collections