В настоящее время возникают проблемы с использованием groupBy во вложенных отношениях на laravel. У меня есть 3 таблицы, и я хочу сгруппировать базу результатов по значению CountryTbl
. Вот таблицы.
UserTbl
----------------------------------
id | name | branch_id |
----------------------------------
1 | Joseph | 1 |
2 | Manuel | 1 |
3 | Margaret | 3 |
----------------------------------
BranchTbl
----------------------------------
id | branch_name | country_id |
----------------------------------
1 | Pampanga | 1 |
2 | Manila | 1 |
3 | California | 2 |
----------------------------------
CountryTbl
------------------------
id | country_name |
------------------------
1 | Philippines |
2 | United States |
------------------------
Это моя модель
UserModel
public function branch()
{
return $this->belongsTo('App\Branch');
}
BranchModel
public function country()
{
return $this->belongsTo('App\Country');
}
CountryModel
Теперь, в приведенной выше таблице я хочу получить всех пользователей и сгруппировать их по странам.
Вот что я пробовал.
public function getAllUsers(){
$users = User::with('branch')
->with(['branch.country' => function($q){
return $q->groupBy('country_name');
}])
->get();
return $users;
}
Мой код не работает. Мне всегда возвращается сообщение об ошибке:
Синтаксическая ошибка или нарушение прав доступа