我使用laravel和sentinel(Sentry)默认使用用户,组和users_groups数据库表
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 ..
请有人帮助我。它非常混乱
答案 0 :(得分: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