2016-09-23 6 views
-1

저는 롤 모델을 가지고 "many to many"관계를 가진 사용자 모델을 가지고 있습니다. 사용자 모델 :laravel에서 역할을 가진 사용자를 얻는 방법?

class UserController extends Controller { 
    ... 

    // GET /user/3 
    public function show(User $user) 
    { 
     // $user is a single user 
     // return single user's data without roles 
     // I want to get user WITH roles 
     return $user; 
    } 

    // GET /users 
    public function index(User $user) 
    { 
     // returns list of users with roles. 
     $user->with('roles')->get(); 
    } 
} 

JSON 형식으로 역할없이 사용자의 데이터를 반환 show() 방법 :

class User extends Model 
{ 
    ... 
    public function roles() 
    { 
     return $this->belongsToMany(Config::get('entrust.role'), Config::get('entrust.role_user_table'), 'user_id', 'role_id'); 
    } 
} 

내가 JSON 형식으로 사용자 데이터를 얻기위한 방법이 사용자의 컨트롤러를 가지고있다. 역할 데이터로 사용자의 데이터를 얻는 방법?

내가 with() 방법을 사용하여 사용자와 역할을 반환 할 수있는 사용자의 목록 ( index() method)의 경우

,하지만 난 쇼에 그것을하는 방법을 모른다() 메소드

return dd($user)show()의 방법 출력 :

User {#192 ▼ 
    #fillable: array:7 [▼ 
    0 => "name" 
    1 => "email" 
    2 => "password" 
    3 => "username" 
    4 => "first_name" 
    5 => "last_name" 
    6 => "is_guest" 
    ] 
    #hidden: array:2 [▼ 
    0 => "password" 
    1 => "remember_token" 
    ] 
    #totalCount: null 
    #connection: null 
    #table: null 
    #primaryKey: "id" 
    #keyType: "int" 
    #perPage: 15 
    +incrementing: true 
    +timestamps: true 
    #attributes: array:11 [▼ 
    "id" => 11 
    "username" => "some_username6" 
    "email" => "[email protected]" 
    "password" => "$2y$10$h8mN6r8rWdiXv9VJG5z7NucaOrD9kEtfBSXnL6BdJGzV1671EkdaG" 
    "name" => "some name6" 
    "first_name" => "some_first_name6" 
    "last_name" => "some_last_name6" 
    "remember_token" => null 
    "created_at" => "2016-09-02 19:14:46" 
    "updated_at" => "2016-09-02 19:14:46" 
    "is_guest" => 1 
    ] 
    #original: array:11 [▼ 
    "id" => 11 
    "username" => "some_username6" 
    "email" => "[email protected]" 
    "password" => "$2y$10$h8mN6r8rWdiXv9VJG5z7NucaOrD9kEtfBSXnL6BdJGzV1671EkdaG" 
    "name" => "some name6" 
    "first_name" => "some_first_name6" 
    "last_name" => "some_last_name6" 
    "remember_token" => null 
    "created_at" => "2016-09-02 19:14:46" 
    "updated_at" => "2016-09-02 19:14:46" 
    "is_guest" => 1 
    ] 
    #relations: [] 
    #visible: [] 
    #appends: [] 
    #guarded: array:1 [▼ 
    0 => "*" 
    ] 
    #dates: [] 
    #dateFormat: null 
    #casts: [] 
    #touches: [] 
    #observables: [] 
    #with: [] 
    #morphClass: null 
    +exists: true 
    +wasRecentlyCreated: false 
} 
+0

당신이 쇼() 메소드에서 DD ($ 사용자)를 시도해 봤어 할 수 있습니까? 그 때 그것은 무엇을 보여줍니까? –

답변

3

기존 모델 오브젝트에 load 기능을 사용하여 관계 데이터를로드 할 수 있습니다.

$user->load('roles') 
return $user; 
3

쇼 방법에 부하 기능을 사용

class UserController extends Controller 
{ 
    public function show(User $user) 
    { 
     return $user->load('roles'); 
    } 

    public function index(User $user) 
    { 
     return $user->with('roles')->get(); 
    } 
} 
+0

광산보다 약간 깔끔한 구문입니다. upvote을 가져라! – ceejayoz

0

을 당신은 단순히

User::with('role')->get();