Конвертировать Laravel Collection в массив не рекурсивно - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть 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 применялся рекурсивно.Обратите внимание, что я полностью осознаю плохие обходные пути, такие как повторное увлажнение моих моделей.

1 Ответ

0 голосов
/ 03 декабря 2018
$users = User::get();
$result = $users->all();
dd($result);

Я думаю, это то, что вы хотите.Попробуйте.

...