在我的应用程序中,有两种模式:
这两者之间存在多对多的关系。
为了获取所有人(人)与他们各自的科目,我做;
$people = Person::with(['subjects' => function($query) {
$query->select('id');
}]);
结果:
{
...
"subjects": [
{
"id": 16
},
{
"id": 21
},
{
"id": 32
}
],
},
我想知道是否有一种优雅的方式可以获得一系列主题ID:
{
...
"subjects": [
10,
14,
21,
38
],
},
答案 0 :(得分:2)
您可以使用map()
收集方法。我刚刚用多对多关系测试了这个解决方案,它运行良好:
$collection->map(function ($i) {
$i->subjectArray = $i->subjects->pluck('id')->toArray();
unset($i->subjects);
return $i;
});