У меня есть модель пользователя и модель команды, и в команде может быть много пользователей (принадлежащих к одной связи).Теперь мне нужно извлечь список всех пользователей из команд, членом которых является зарегистрированный пользователь.
У меня есть код ниже:
$teams = $user->teams()->get()->pluck('id')->toArray();
return Team::whereIn('id', $teams)->with(['users'])->get()->map(function ($item) {
return $item->users->map(function ($user) {
return [
'name' => $user->name,
'email' => $user->email,
];
});
});
Выше возвращает коллекцию, подобную приведенной ниже:
Collection {#375 ▼
#items: array:2 [▼
0 => array:3 [▼
0 => array:2 [▼
"name" => "John Doe",
"email" => "john.doe@mail.com"
]
1 => array:2 [▼
"name" => "Jane Doe",
"email" => "jane.doe@mail.com"
]
2 => array:2 [▶]
]
1 => array:2 [▼
0 => array:2 [▼
"name" => "Jane Doe"
"email" => "jane.doe@mail.com"
]
1 => array:2 [▼
"name" => "John Doe",
"email" => "john.doe@mail.com"
]
]
]
}
Вот лучшее представление:
[
[
{
"name": "John Doe",
"email": "john.doe@mail.com"
},
{
"name": "Jane Doe",
"email": "jane.doe@mail.com"
},
{
"name": "John Doe",
"email": "john.doe@mail.com"
}
],
[
{
"name": "Jane Doe",
"email": "jane.doe@mail.com"
},
{
"name": "John Doe",
"email": "john.doe@mail.com"
}
]
]
Как видите, у меня есть дубликаты, мне нужно от них избавиться.Я пытался использовать разные и уникальные без успеха.