我有Collection
个对象。我想把它变成对象的array
。不幸的是,toArray
中的Collection
似乎是递归应用的,因此我实际上得到了一个数组数组。
以下是显示问题的示例:
$users = User::get();
$result = $users->toArray();
dd($result);
在上面的示例中,您得到的不是数组User模型,而是数组。
很明显,当您查看Laravel的源代码时,为什么会发生此问题:
// Illuminate\Support\Collection.php
public function toArray()
{
return array_map(function ($value) {
return $value instanceof Arrayable ? $value->toArray() : $value;
}, $this->items);
}
请注意,我仍然希望$users
成为Collection
,因为示例只是一个MCVE。我只是不想递归地应用toArray
。请注意,我完全意识到不良的解决方法,例如为模型重新补水。
答案 0 :(得分:4)
$users = User::get();
$result = $users->all();
dd($result);
我想这就是你想要的。试试看。