php Laravel集合到数组

7uzetpgm  于 2023-04-04  发布在  PHP
关注(0)|答案(7)|浏览(118)

我有两个型号,PostComment;许多评论属于一个帖子。我试图访问与一个帖子相关的所有评论作为一个数组。
我有下面的,这给了一个集合。
$comments_collection = $post->comments()->get()
如何将这个$comments_collection转换为一个数组?有没有更直接的方法通过有说服力的关系访问这个数组?

wydwbb8l

wydwbb8l1#

你可以使用下面的toArray()函数。
toArray方法将集合转换为普通PHP数组。

$comments_collection = $post->comments()->get()->toArray()

Laravel Docs:
toArray还将集合中所有作为Arrayable示例的嵌套对象转换为数组。如果要获取原始基础数组,请改用all方法。

hivapdat

hivapdat2#

使用all()方法-它的目的是返回集合的项目:

/**
 * Get all of the items in the collection.
 *
 * @return array
 */
public function all()
{
    return $this->items;
}
cedebl8k

cedebl8k3#

试试这个:

$comments_collection = $post->comments()->get()->toArray();

看这个能帮到你
集合中的toArray()方法

yacmzcpb

yacmzcpb4#

你可以做这样的事

$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

dfddblmv

dfddblmv5#

使用collect($comments_collection)
否则,尝试json_encode($comments_collection)转换为json。

3z6pesqy

3z6pesqy6#

只需对集合执行all(),就会返回一个数组,如下所示:

$comments_collection = $post->comments()->all();

我现在用的是Laravel 10.5.0,这对我来说很好用。

vhipe2zx

vhipe2zx7#

在数组中尝试collect函数,如:

$comments_collection = collect($post->comments()->get()->toArray());

这些方法可以帮助您

toArray()withcollect()

相关问题