是否有一种简单的方法将Eloquent Collection转换为实际数组,而不需要转换元素本身?
当我尝试将集合传递到像
我通过使用
更新/结论
似乎
因此,要获取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 Collection上的all返回Support Collection,而Support Collection返回Array。因此,要获取Eloquent模型的数组,您需要使用
SomeModel::all()->all();
。
SomeModel::all()
已经是相同的。但现在我看到我需要对结果进行另一个 all-call:SomeModel::all()->all()
。 - Arno van Oordt