У меня есть Collection
объектов.Я хочу превратить это в array
объектов.К сожалению, toArray
в Collection
, кажется, применяется рекурсивно, и поэтому я на самом деле получаю массив массивов.
Вот пример, показывающий проблему:
$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
применялся рекурсивно.Обратите внимание, что я полностью осознаю плохие обходные пути, такие как повторное увлажнение моих моделей.