2015-12-01 115 views
1

我使用laravel和哨兵(哨兵),其默認情況下使用的用戶,組和users_groups數據庫表Laravel關係多對多

users 
----------------- 
id   name 
1   user 
2   user 
3   admin 


groups 
------------------- 
id   name 
1   Users 
2   Admins 

users_groups 
-------------------- 
user_id  group_id 
1   1 
2   1 
3   1 
3   2 

我定義上laravel模型之間的關係,它的做工精細,當我嘗試打印

$users = Group::find($id)->user; 

但如何打印只是用戶只?

$users = Group::where(array("name"=>"Users"))->get()->user; 

它仍然顯示所有數據包括管理員,我只想只顯示用戶,如何做到這一點?

我知道這個問題因爲users_groups表管理有用戶ID太..

請幫助我的人。這是檸混亂

回答

2

您可以使用with獲得指定關係的數據如下:

$users = Group::with('user')->find($id); 

這將返回組的數據和用戶。

如果你只是想只有用戶表的數據,你必須更改查詢和而不是使用模型Group你需要在User模型類似下面的查詢:

$users = User::where('group_id', $groupId); 

http://laravel.com/docs/5.1/eloquent-relationships http://laravel.com/api/5.1/Illuminate/Database/Eloquent/Model.html#method_with

+0

它不工作,因爲也有可以充當用戶的管理員,ii使用group_id = user的位置查詢,然後也選擇管理員 – yudijohn