2017-01-25 59 views
1

我有3個型號:向用戶顯示2個相關表記錄

用戶,角色和分支。

他們的關係如下:

傾用戶模式:

class User extends Model 
{ 
    // Define fields to be fillable 
    protected $fillable = [ 
          'firstname', 
          'lastname', 
          'telephone', 
          'address', 
          'password', 
          'code', 
          'status', 
          'branches_id', 
          'roles_id' 
         ]; 

    /** 
    * Get the role record associated with the user. 
    */ 
    public function role() 
    { 
     return $this->hasOne('App\Role'); 
    } 

    /** 
    * Get the branch record associated with the user. 
    */ 
    public function branch() 
    { 
     return $this->hasOne('App\Branch'); 
    } 
} 

爲榜樣:

class Role extends Model 
{ 
    // Define fields to be fillable 
    protected $fillable = ['description']; 

    /** 
    * Get the user that owns the role. 
    */ 
    public function user() 
    { 
     return $this->belongsToMany('App\User'); 
    } 
} 

對於分支型號:

class Branch extends Model 
{ 
    // Define fields to be fillable 
    protected $fillable = ['description', 'location']; 

    /** 
    * Get the user that owns the branch. 
    */ 
    public function user() 
    { 
     return $this->belongsToMany('App\User'); 
    } 
} 

我知道,如果我正在使用刀片,列出用戶的角色,我可以做這樣的事情:$ user-> role()

但我試圖使用角2爲前端和laravel 5.3爲我的後端。

我的問題是如何檢索用戶角色和樹枝一起

這裏是我的UserController中我的索引行動:

public function index() 
{ 
    // Get all users, along with roles and branches 
    $users = User::all(); 

    // Send the response 
    return response()->json([ 
      'users' => $users 
     ], 200); 
} 

回答

0

使用eager loading

$users = User::with('role', 'branch')->get(); 

此外,如果用戶擁有一個角色和一個分支,關係應該是belongsTo()而不是belongsToMany()

return $this->belongsTo('App\User'); 
+1

謝謝阿列克謝, 問題解決了, – Beni

+0

這可能會幫助其他人,我已經創建了其他模型'轉移','狀態'。 「轉移」與「狀態」和「用戶」相關聯。我想顯示所有的轉移將所有的關係和所有的用戶關係,我只是這樣做︰$ transfers = Transfer :: with('status','user','user.branch','user.role') - > get () – Beni