2016-08-19 4 views
1

Мне нужно, чтобы мои пользователи с их ролями (список, а не проверять!) В стандартной системе Auth.
Я somethink так:Laravel - Получить пользователей с их ролями имя

$users = DB::table('users') 
      ->join('user_roles', 'users.id', '=', 'user_roles.user_id') 
      ->select('id', 'first_name', 'role_id') 
      ->get(); 

И я получаю это:

array:2 [▼ 
    0 => {#552 ▼ 
    +"id": 9670 
    +"first_name": "Paweł" 
    +"role_id": 1337 
    } 
    1 => {#553 ▼ 
    +"id": 9670 
    +"first_name": "Paweł" 
    +"role_id": 100 
    } 
] 

Но мне это нужно:

array:2 [▼ 
    0 => {#552 ▼ 
    +"id": 9670 
    +"first_name": "Paweł" 
    +"roles": 'Admin, AnotherRole' 
    } 
] 

Как я могу это сделать? Структуры моих таблиц:
пользователи
'ID' 'Firstname' ... и т.д.
роли
'идентификатор' 'имя'
user_roles
'user_id' 'role_id'

ответ

1

Попробуйте этот код

App/Пользователь

public function roles() 
{ 
    return $this->belongsToMany('App\Role'); 
} 

Контроллер

use App/User; 

    public funtion getUsers(User $user) { 
    $getUsersWithRole = $user->with('roles')->get(); 
    dd($getUsersWithRole); 

    } 
0

пользователя Модель:

public function roles() 
{ 
    return $this->belongsToMany('App\Role'); 
} 

Контроллер:

use App/User; 

    public funtion index(User $user) { 
    $users= User::with('roles')->get();  
    } 
Смежные вопросы