Laravel QueryBuilder返回值数组

时间:2017-07-23 10:27:23

标签: laravel

在我的应用程序中,有两种模式:

  • 受试者

这两者之间存在多对多的关系。

为了获取所有人(人)与他们各自的科目,我做;

   $people = Person::with(['subjects' => function($query) {
     $query->select('id');
   }]);

结果:

{
            ...

            "subjects": [
                {
                    "id": 16
                },
                {
                    "id": 21
                },
                {
                    "id": 32
                }
            ],
},

我想知道是否有一种优雅的方式可以获得一系列主题ID:

{
            ...

            "subjects": [
                10,
                14,
                21,
                38
            ],
},

1 个答案:

答案 0 :(得分:2)

您可以使用map()收集方法。我刚刚用多对多关系测试了这个解决方案,它运行良好:

$collection->map(function ($i) {
    $i->subjectArray = $i->subjects->pluck('id')->toArray();
    unset($i->subjects);
    return $i;
});