关系中的条款

时间:2015-01-05 10:19:05

标签: php laravel laravel-4 eloquent

我需要在User模型中创建一个where子句,以便仅从特殊Group中获取用户。

我有一个表group_user,这是一个多对多表。

我需要让所有拥有群组Admin的用户离开。

如何使用Eloquent Relationship方法过滤?

1 个答案:

答案 0 :(得分:1)

你可以使用whereHas方法来查询你的关系;

User::whereHas('group', function($query){
    $query->where('name', 'Admin');
})->get();

这将仅返回具有与其相关的组的用户,其名称为Admin。

请注意:这假设您已在User模型中设置了与该组的关系,其关系名称为group。

要设置关系,请在用户模型中使用以下内容;

public function group(){
    return $this->belongsToMany('Group', 'group_user', 'user_id', 'group_id');
}

如需了解更多信息,请转到here