laravel集合到数组

dat*_*dan 46 php arrays laravel eloquent

我有两个型号,Post并且Comment; 许多评论都属于一个帖子.我正在尝试访问与帖子关联的所有评论作为数组.

我有以下,给出了一个集合.

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

我怎么把它$comments_collection变成一个数组?是否有更直接的方式通过雄辩的关系访问这个数组?

Dru*_*jen 83

你可以使用eruque(如下)toArray().
toArray方法将集合转换为普通的PHP数组.如果集合的值是Eloquent模型,则模型也将转换为数组

$comments_collection = $post->comments()->get()->toArray()
Run Code Online (Sandbox Code Playgroud)

  • 这不应该是最佳答案。`->toArray()` 不会将集合转换为数组,而是将整个内容转换为数组,包括集合的项目。`->all()` 应该是可接受的答案。 (4认同)

eit*_*hed 13

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

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

  • 是的@JovylleBermudez。它是一个对象数组 (3认同)
  • 这对我来说是正确的解决方案,因为我需要一个模型数组,而不是一个数组数组。 (2认同)

par*_*oid 11

尝试这个:

$comments_collection = $post->comments()->get()->toArray();
Run Code Online (Sandbox Code Playgroud)

看看这可以帮助你
集合中的 toArray() 方法