【发布时间】:2016-07-04 00:44:58
【问题描述】:
我想通过急切加载实现一些分组
当我做这样的事情时:
$usersWithDepartments = User::with('department')->get();
这出来了:
[
{
"userID": 491,
"userName": "gigi"
"deparment":
{
"departmentID": 1,
"name": "Economy"
}
},
{
"userID": 444,
"userName": "gigi2"
"deparment":
{
"departmentID": 1,
"name": "Economy"
}
}
]
但我想知道是否可以这样做:
$usersWithDepartments = User::with('department')->groupBy('deparment')->get();
为了得到这样的 JSON:
[
{
"departmentID": 1,
"name": "Economy",
"users":
[
{
"userID": 491,
"userName": "gigi"
},
{
"userID": 444,
"userName": "gigi2"
}
]
}
]
我知道我可以做Department::with('users'),但我想保留上面的相同查询,以免进行另一个查询调用
如果不可能的话。是否有其他解决方法?
【问题讨论】:
-
看起来
Department::with('users')正是你想要的,我不明白你想要“保持相同的查询” -
我的问题是一个大型查询的简化示例,在我的原始查询中,我有近 4 个连接,包括急切加载的连接。我不想做 Department::with('users') 因为这意味着再次运行巨大的原始查询。
标签: php json laravel laravel-5 eager-loading