2016-09-20 39 views
0

我正在研究laravel 5應用程序。 我有3個表:獲取用戶列表的Laravel表關係

table A: 'users' 

id | name 
———————————————— 
1 | Dave 
2 | Robet 
3 | Jimmy 
4 | Daniel 

和表B classroom_users

user_id | classroom_id 
1  | 5    
4  | 5    
3  | 6 
4  | 5   

我需要返回的所有用戶名「課堂5

請讓我知道什麼是最好的方式去做。槽型或數據庫加入

任何幫助表示讚賞。

+0

多個樞紐你有模型和關係來定義? – jaysingkar

+0

@jaysingkar是的,我有模型,但不知道什麼方法用於關係。 –

+0

行..你可以使用'belongsToMany()'會告訴你如何 – jaysingkar

回答

1

假設你有模式和它的關係將被定義如下:

課堂教學模式:

public function users(){ 
    return $this->belongsToMany(User::class,'classroom_users','classroom_id','user_id'); 
} 

用戶模型:現在

public function classrooms(){ 
    return $this->belongsToMany(UserClassrooms::class,'classroom_users','user_id','classroom_id'); 
} 

,在控制器您可以檢索屬於教室ID爲5的用戶S下:

$classroom_id = 5 ;//change this to the id you want 
$users = Classroom::find($classroom_id)->users()->get(); 
+0

不幸的是,這是我得到: SQLSTATE [42P01]:未定義表:7錯誤:關係「user_user_classrooms」不存在 LINE 1:... er_id「 as「pivot_user_id」from「users」inner join「user_user ... –

+1

更新用戶方法以包含表名,檢查更新 – jaysingkar

+0

另一個錯誤:( SQLSTATE [42703]:未定義列:7錯誤:列user_classrooms.user_classrooms_id不存在 –

0

Laravel已經推出透視表,其工作原理是這樣

return $this->belongsToMany('App\Role')->withPivot('column1', 'column2'); 

你可以閱讀Official Docs