【发布时间】:2016-08-04 13:17:29
【问题描述】:
例如,我们有一个歌曲表和一个收藏(歌曲)表。
如果我使用Songs::with('favorites')->get(),它将返回如下:
"songs": [
{
"id": 43,
"name": "Song 1",
"favorites": [
{
"id": 52,
"user_id": 25,
"song_id": 43
}
]
},
{
"id": 44,
"name": "Song 2",
"favorites": []
},
我要做的是,如果歌曲被收藏,则返回1,如果没有,则返回0,如下:
{
"id": 43,
"name": "Song 1",
"favorites": true (or 1)
},
{
"id": 44,
"name": "Song 2",
"favorites": false (or 0)
},
有没有办法不用在 PHP 中手动遍历返回的集合数组?
【问题讨论】:
-
你不想使用
map? -
无论如何,你似乎已经拥有了你想要的东西。如果 $song->favorites 为 null (false),否则为 true。
-
映射不只是迭代结果集吗?我希望在模型加载到查询之前/期间做一些事情。
-
@Lucas 是的,你是对的。可以保持原样。只是我的好奇心改变它。
-
您也可以使用更原始的 SQL 方法来做到这一点,但我不确定如何。
标签: php laravel collections