2015-02-08 117 views
1
轉動相關的表關係

所以,我有2種型號叫做TeamUser其中User涉及多個TeamsTeam具有包括多個Users。這意味着我有一個名爲team_user的數據透視表。獲取從雄辯

我想抓住用戶的團隊成員。

我有關係的設置如下:

// In the User model 
public function teams() 
{ 
    return $this->belongsToMany('App\Entities\Team'); 
} 

// In the Team model 
public function users() 
{ 
    return $this->belongsToMany('App\Entities\User'); 
} 

我怎麼會返回一個團隊內的用戶從一個用戶?

我試過User::find(1)->teams()->users()但這不是工作..

我試圖返回一個這樣的數組:

[ 
    'teamName' => 'Team #1', 
    'users' => [ 
     [ 
     'username' => 'John Doe' 
     ], [ 
     'username' => 'John Doe #2' 
     ] 
    ], 
    'teamName' => 'Team #2', 
    'users' => [ 
     [ 
     'username' => 'Doe John' 
     ], [ 
     'username' => 'Doe John #2' 
     ] 
    ] 
+0

LOL我幾乎嘗試了一切.....除@JoelHinz FML,謝謝! – guidsen 2015-02-08 22:38:17

+0

沒有汗水。猜猜我應該發佈它作爲答案。 :)一定是誤刪了評論,但我很高興它有幫助。 – 2015-02-08 23:17:28

回答

0

首先,如果您的數據透視表稱爲team_user而不是team_users你有你的關係,將其指定:

// In the User model 
public function teams() 
{ 
    return $this->belongsToMany('App\Entities\Team', 'team_user'); 
} 

// In the Team model 
public function users() 
{ 
    return $this->belongsToMany('App\Entities\User', 'team_user'); 
} 

然後你就可以通過用戶的訪問teams()->get()檢索隊第二添加with('users')躍躍欲試負載每一支球隊的users關係:

$teams = User::find(1)->teams()->with('users')->get(); 
+0

我想讓用戶在用戶的團隊中。解決它通過執行User :: find(1) - > teams() - >與('users') - > get() - > toArray()' – guidsen 2015-02-08 22:39:34

+0

我的不好,我沒有想直。答案已更新:) – lukasgeiter 2015-02-08 22:41:44

+0

我將如何設置'用戶'關係的位置,因爲我不想在結果中擁有自己的'user_id'。 – guidsen 2015-02-08 22:55:23