【问题标题】:Appending an existing returned array to an existing array将现有的返回数组附加到现有数组
【发布时间】: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

标签: php laravel


【解决方案1】:

我可以从您之前的回复中看到,您有办法获得突出显示的曲目。如果您不这样做,请创建一个关系以获取 if 然后您可以使用 $collection->push(['key' => 'value']) pushing into laravel collections 将其推送到您的收藏中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-03
    • 1970-01-01
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 2018-09-02
    • 2017-06-13
    • 2016-05-03
    相关资源
    最近更新 更多