如何获取附加数据透视表的数据?

我正在尝试从我的 Lists 表中获取数据,并在该列表中包含一个带有曲目 ID 的数组。


这是数据库模型的示例,关系为 N:M。


数据库模型


在我的 List 模型中,我添加了这个方法:


public function tracks()

{

   return $this->belongsToMany(Track::class, 'List_Tracks', 'id_list', 'id_track');

}

因此,在我的 ListController 中,我正在执行以下操作:


$list = List::find($id);

$list->tracks_list = $list->tracks->pluck('track_id');

return $list;

我得到的对象与我在同一个列表中的曲目一样多,例如:


[

{

 "id_track": 1,

 "name": "Yesterday",

 "tracks_list": [

  1,

  2

 ]

 "pivot": {

    "id_list": 1,

    "id_track": 1

 }

},

{

 "id_track": 2,

 "name": "Lucy in the sky with diamonds",

 "pivot": {

    "id_list": 1,

    "id_track": 2

 }

}

]

但我想得到的是:


{

 "id_list": 1,

 "name": "The Best of The Beatles",

 "tracks_list": [

  1,

  2

]

}

我认为我尝试过的事情比正确的解决方案复杂得多。


您将如何以这种方式获取数据?


繁星淼淼
浏览 134回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP