从laravel集合中获取模型数组

Mig*_*ork 2 php arrays laravel

给定一个CollectionEloquent Models,它们是Arrayable,我如何获得这些对象的数组?

如果调用->toArray()集合,它将给我嵌套的关联数组,从而破坏模型。

如果我将其强制转换为数组,则会得到这个非常奇怪的东西:

array:1 [?
  "\x00*\x00items" => array:1 [?
    "temp" => HistorySeries {#374 ?
      #table: "history_series_hse"
      #primaryKey: "id_hse"
      #connection: "mysql"
      +timestamps: false
      <...snip...>
    }
  ]
]
Run Code Online (Sandbox Code Playgroud)

然后是这个,但是我不太喜欢它(它可以工作):

    $reflection = new ReflectionClass($coll);
    $property = $reflection->getProperty('items');
    $property->setAccessible(true);
    $array = $property->getValue($coll);
Run Code Online (Sandbox Code Playgroud)

或者我可以使用foreach循环将其提取,但这很丑陋。有什么好办法吗?

pat*_*cus 5

Collection是就在一个标准的数组的包装。要获取该标准数组,请在all()上调用方法Collection

// Collection of Item models
$itemsCollection = Item::all();

// standard array of Item models
$itemsArray = $itemsCollection->all();
Run Code Online (Sandbox Code Playgroud)