【发布时间】:2019-03-05 00:06:52
【问题描述】:
使用具有表和字段的数据库,例如
专辑
id
titleId
titleName
跟踪
id
titleId
trackId
trackName
艺术家
id
artistId
track_log
id
artistId
titleId
在这种情况下,多个艺术家可以拥有一首曲目,并且一张专辑中可以有多个曲目。
使用模型,我可以像这样返回专辑的所有曲目
public function track() {
return $this->belongsTo('App\Album', 'titleId', 'titleId');
}
所以我现在可以使用 $album->track 来提取该专辑中的所有曲目。
它会返回
{
"id": 1,
"titleId": 3,
"titleName": "Why so hard?",
},
我正在寻找一种方法来突出显示艺术家制作的专辑中的曲目,方法是将artistId 附加到模型中曲目的结果中?像
这样的东西trackHighlightArtist()
这样会返回如下内容:
{
"id": 1,
"titleId": 3,
"titleName": "Why so hard?",
"artistId": 4,
},
这可能吗?
【问题讨论】:
-
您是否已经在某个地方定义了曲目和艺术家之间的关系?
-
使用关系你找不到这种类型的数组,关系给你数组和内部数组。使用 laravel 查询构建器和连接表,你可以找到这种类型的数组。
-
很抱歉我想重新编辑。有一张桌子,两者相交。所以每个艺术家都有一个曲目日志。该表包含 id、艺术家 id 和标题 id。我还没有定义关系,但我认为这也是 hasMany?
-
尝试 API 资源集合。 Laravel Resource Collection