我有两个模型Post
和Comment
;许多评论都属于一个帖子。我正在尝试访问与帖子相关的所有评论作为数组。
我有以下内容,它提供了一个集合。
$comments_collection = $post->comments()->get()
如何将此$comments_collection
转换为数组?是否有更直接的方式通过雄辩的关系访问这个数组?
答案 0 :(得分:59)
您可以使用如下的toArray()口才。
toArray
方法将集合转换为普通的PHP数组。如果集合的值是Eloquent模型,模型也将转换为数组
$comments_collection = $post->comments()->get()->toArray()
答案 1 :(得分:4)
试试这个:
$comments_collection = $post->comments()->get()->toArray();
看到这可以帮到你 toArray() method in Collections
答案 2 :(得分:3)
你可以做这样的事情
$collection = collect(['name' => 'Desk', 'price' => 200]);
$collection->toArray();
参考是https://laravel.com/docs/5.1/collections#method-toarray
最初来自Laracasts网站https://laracasts.com/discuss/channels/laravel/how-to-convert-this-collection-to-an-array
答案 3 :(得分:1)
使用collect($comments_collection)
。
否则,请尝试json_encode($comments_collection)
转换为json。
答案 4 :(得分:0)
使用all()
方法-它旨在返回Collection的项目:
/**
* Get all of the items in the collection.
*
* @return array
*/
public function all()
{
return $this->items;
}
答案 5 :(得分:0)
尝试收集函数,
$comments_collection = collect($post->comments()->get()->toArray());
此方法可以为您提供帮助
toArray()和 collect()