【问题标题】:Where Clause in Relationship关系中的 Where 子句
【发布时间】:2015-01-05 10:19:05
【问题描述】:

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

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

我需要删除所有拥有Admin 组的用户。

如何使用 Eloquent 关系方法过滤?

【问题讨论】:

    标签: php laravel laravel-4 eloquent


    【解决方案1】:

    你可以像这样使用 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

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 1970-01-01
      • 2013-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多