【发布时间】:2015-01-05 10:19:05
【问题描述】:
我需要在 User 模型中创建一个 where 子句,以仅从特殊的 Group 获取用户。
我有一张表group_user,这是一个多对多表。
我需要删除所有拥有Admin 组的用户。
如何使用 Eloquent 关系方法过滤?
【问题讨论】:
标签: php laravel laravel-4 eloquent
我需要在 User 模型中创建一个 where 子句,以仅从特殊的 Group 获取用户。
我有一张表group_user,这是一个多对多表。
我需要删除所有拥有Admin 组的用户。
如何使用 Eloquent 关系方法过滤?
【问题讨论】:
标签: php laravel laravel-4 eloquent
你可以像这样使用 whereHas 方法来查询你的关系;
User::whereHas('group', function($query){
$query->where('name', 'Admin');
})->get();
这将仅返回具有与其相关的组的用户,名称为 Admin。
请注意:这假设您已经在用户模型中设置了与组的关系,关系名称为组。
要建立关系,请在您的用户模型中使用以下内容;
public function group(){
return $this->belongsToMany('Group', 'group_user', 'user_id', 'group_id');
}
更多信息请访问here。
【讨论】: