Laravel集合获取列到数组

时间:2019-01-13 12:43:06

标签: php laravel

我有收藏集

$categories = $post->categories;

我明白了:

#items: array:1 [▼
   0 => Category {#999 ▶}
   1 => Category {#999 ▶}
]

我需要从类别id中获取。

我尝试:

$categories = array_column('id', $post->categories);

但是集合array_column无法正常工作。我该怎么做?

3 个答案:

答案 0 :(得分:1)

如果要从集合中获取任何属性,请使用map高阶消息。

示例。

$category_ids = $post->categories->map->id;

就是这样。

答案 1 :(得分:0)

首先将您的集合转换为数组。您可以如下使用雄辩的toArray()

$categories = $post->categories()->get()->toArray();

还有这个

$categories = array_column('id', $post->categories);

应该是

$categories = array_column($post->categories, 'id');

您的新代码应如下所示:

$categories = $post->categories()->get()->toArray();

$categories = array_column($categories, 'id');

参考:array_column

答案 2 :(得分:0)

已经有了一些好的答案。

替代方法是:

$category_ids = $post->categories->pluck('id');