Laratrust покажите роль пользователя внутри командыPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Laratrust покажите роль пользователя внутри команды

Сообщение Anonymous »

Я пытаюсь установить связь между командами и пользователями.
В значительной степени Latrust выглядит как потрясающий пакет , но , я считаю, можно объяснить лучше.
Давайте выберем команду (скажем: team_id = 1):

Код: Выделить всё

$team = Team::where('id', $request->team_id)->first();

И давайте выберем наших пользователей из команды:

Код: Выделить всё

$roles = Role::get();
$users = User::whereRoleIs($roles->pluck('name')->toArray(), $team)->get()
< /code>
Это приведет к следующему: < /p>
{
"message": "ok",
"data": [
{
"id": 1,
"name": "niki",
"email": "niki@user.com",
"email_verified_at": null,
"created_at": "2021-07-12T11:29:09.000000Z",
"updated_at": "2021-07-12T11:29:09.000000Z",
"roles": [
{
"id": 3,
"name": "user",
"display_name": "User",
"description": "User",
"created_at": "2021-07-12T11:29:08.000000Z",
"updated_at": "2021-07-12T11:29:08.000000Z",
"pivot": {
"user_id": 1,
"role_id": 3,
"user_type": "App\\Models\\User"
}
},
{
"id": 4,
"name": "leader",
"display_name": "Leader",
"description": "Leader",
"created_at": "2021-07-12T11:29:08.000000Z",
"updated_at": "2021-07-12T11:29:08.000000Z",
"pivot": {
"user_id": 1,
"role_id": 4,
"user_type": "App\\Models\\User"
}
}
]
},
{
"id": 2,
"name": "konna",
"email": "konna@user.com",
"email_verified_at": null,
"created_at": "2021-07-12T11:29:09.000000Z",
"updated_at": "2021-07-12T11:29:09.000000Z",
"roles": [
{
"id": 3,
"name": "user",
"display_name": "User",
"description": "User",
"created_at": "2021-07-12T11:29:08.000000Z",
"updated_at": "2021-07-12T11:29:08.000000Z",
"pivot": {
"user_id": 2,
"role_id": 3,
"user_type": "App\\Models\\User"
}
},
{
"id": 3,
"name": "user",
"display_name": "User",
"description": "User",
"created_at": "2021-07-12T11:29:08.000000Z",
"updated_at": "2021-07-12T11:29:08.000000Z",
"pivot": {
"user_id": 2,
"role_id": 3,
"user_type": "App\\Models\\User"
}
}
]
}
]
}
Это возвращает все роли, которые имеют эти два пользователя (оба они принадлежат к одной и той же команде)
Как может Мы выбираем только < /strong> роль, которую пользователь играет в команде? запрос, а затем выбирая роль пользователя оттуда.
foreach ($users as $user){
$userArray[] = array_push($userArray, $user->name, $user->roles->first());
}
< /code>
Тем не менее, это вернет роль первого () или последнего (), прикрепленную к пользователю, которая может быть чем угодно (особенно когда пользователь может принадлежать к нескольким командам с другой ролью, прикрепленной к каждому Команда, которую он посещает). < /p>
Итак, мой вопрос: как я могу показать роль пользователя в команде? < /p>
Я думал: < /p>
$user->roles->where($team->id)
< /code>
Но это возвращает все роли, которые прикреплены к пользователю, а не конкретную роль, которую пользователь играет в команде. < /p>
Любая помощь - это помощь ценится.

Подробнее здесь: https://stackoverflow.com/questions/683 ... de-of-team
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»