非递归地将Laravel集合转换为数组
Convert Laravel Collection to an array non-recursively
我有 Collection
个对象。我想将其转换为 array
个对象。不幸的是 Collection
中的 toArray
似乎递归应用,因此我实际上得到了一个数组数组。
这是一个显示问题的例子:
$users = User::get();
$result = $users->toArray();
dd($result);
在上面的示例中,您得到的不是一组用户模型,而是一组数组。
看了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
。请注意,我完全了解不好的解决方法,例如重新水合我的模型。
$users = User::get();
$result = $users->all();
dd($result);
我想这就是你想要的。试一试。
我有 Collection
个对象。我想将其转换为 array
个对象。不幸的是 Collection
中的 toArray
似乎递归应用,因此我实际上得到了一个数组数组。
这是一个显示问题的例子:
$users = User::get();
$result = $users->toArray();
dd($result);
在上面的示例中,您得到的不是一组用户模型,而是一组数组。
看了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
。请注意,我完全了解不好的解决方法,例如重新水合我的模型。
$users = User::get();
$result = $users->all();
dd($result);
我想这就是你想要的。试一试。