У меня есть users
и user_positions
таблица.
Модель пользователя
public function positions()
{
return $this->hasMany(UserPosition::class);
}
Пример данных:
Пользователи:
----------------
| id | name |
----------------
| 1 | Alex |
| 2 | Nick |
| 3 | John |
| 4 | Liam |
| 5 | Noah |
| 6 | William |
| 7 | James |
| 8 | Oliver |
| 9 | Benjamin|
| 10 | Elijah |
| 11 | Lucas |
----------------
Пользователи Позиции
------------------------
| position | user_id |
------------------------
| Developer | 1 |
| Designer | 2 |
| Teacher | 1 |
| Singer | 3 |
| Architect | 3 |
| Accountant | 4 |
| Baker | 2 |
| Actress | 7 |
| Chef | 11 |
| Butcher | 10 |
| Carpenter | 8 |
| Developer | 9 |
| Accountant | 11 |
| Butcher | 8 |
| Singer | 10 |
| Carpenter | 7 |
| Carpenter | 1 |
------------------------
В этом случае, как я могу сгруппировать пользователя по названию позиции и получить такой результат:
[
Developer => [1, 9],
Designer => [2],
Teacher => [1],
Singer => [3, 10],
Architect => [3],
Accountant => [4, 11],
Baker => [2],
Actress => [7],
Chef => [11],
Butcher => [10, 8],
Carpenter => [8, 7, 1]
]