Я хочу, чтобы достичь какой-то группировки с жадными загрузкамиLaravel Группировка с жадной загрузкой
Когда я сделать что-то вроде этого:
$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')
, но я хочу, чтобы один и тот же запрос выше, для того, чтобы не сделать еще один звонок-запрос
, если это не представляется возможным. Есть ли какие-нибудь другие работы вокруг?
Похоже, 'Департамент :: с («пользователей»)' это именно то, что вы хотите, я не понимаю, что вы желая «сохранить тот же запрос» – Moak
My вопрос - упрощенный пример огромного запроса, в моем исходном запросе у меня почти 4 объединения, в том числе и с активной загрузкой. Я не хочу делать Департамент :: с («пользователями»), потому что это означает снова запустить огромный оригинальный запрос. – ggderas