【发布时间】:2016-10-18 02:44:55
【问题描述】:
很抱歉标题不解释,但我想不出一个描述性的标题。
我有以下 3 个表: - 游戏 - 平台 - 游戏平台
我在 Laravel 中为平台和游戏提供了 2 个模型。
public function games()
{
return $this->belongsToMany('App\Game', 'games_platforms')->withPivot('release_date');
}
public function platforms()
{
return $this->belongsToMany('App\Platform', 'games_platforms')->withPivot('release_date');
}
现在这就像一个魅力,我得到一个 JSON 字符串,其中包含 3 个表中的所有信息,就像这样。
[{
"id": 1,
"name": "Borderlands",
"short_description": "",
"created_at": null,
"updated_at": null,
"platforms": [{
"id": 4,
"name": "PC",
"pivot": {
"game_id": 1,
"platform_id": 4,
"release_date": "2016-03-03"
}
}]
}]
现在我的问题如下。我不想显示整个 'pivot' 信息,只显示 'release_date',如下所示:
"platforms": [{
"id": 4,
"name": "PC",
"release_date": "2016-03-03"
在 Laravel 中有没有简单的方法来做这样的事情?据我现在所见,查看其他帖子,要么编写一个将 json 转换为数组的函数,然后我就可以对其进行排列。或者我可以编写自己的查询,而不是让 Laravel 来做这一切。
希望你们能帮我解决这个问题。谢谢!
【问题讨论】:
-
我知道 Laravel 支持开箱即用的即时加载,语法非常易于理解。我从来没有在数据透视表上使用过它,但也许试试看?有人在这里做过,答案似乎有帮助:laracasts.com/discuss/channels/eloquent/… 另外这个前面的问题似乎有一个非常不错的答案:stackoverflow.com/questions/21645257/…
标签: php json laravel eloquent lumen