如何在Laravel中创建组的子组后获取该组的剩余用户

如何在Laravel中创建组的子组后获取该组的剩余用户,laravel,Laravel,上面的代码获取组的用户以及未添加到任何子组中的用户。。 我想要什么? 我想: 因为我有10个用户 我创建了该组的一个子组,并在子组中添加了10个用户中的5个 现在我想创建剩余5个用户的另一个子组,所以我只需要显示未添加到该特定组的任何子组中的5个用户。。。那么,我将如何让剩下的5个用户显示 用户、组、子组之间都有许多关系 在groups表中,主键是否命名为“group_id”? 因为如果不是,那么查询中的where应该是: $groupId = 3; $users = User::whereHa

上面的代码获取组的用户以及未添加到任何子组中的用户。。 我想要什么? 我想:

  • 因为我有10个用户
  • 我创建了该组的一个子组,并在子组中添加了10个用户中的5个
  • 现在我想创建剩余5个用户的另一个子组,所以我只需要显示未添加到该特定组的任何子组中的5个用户。。。那么,我将如何让剩下的5个用户显示
  • 用户、组、子组之间都有许多关系

  • 在groups表中,主键是否命名为“group_id”? 因为如果不是,那么查询中的where应该是:

    $groupId = 3;
    $users = User::whereHas('groups', function ($query) use ($groupId) {
    $query->where('group_id', $groupId);
    })->doesntHave('subgroups')->get();
    
    现在:给我所有属于这个组的用户,他们的子组没有 属于此组:

    $query->where('groups.id', $groupId);
    

    面临错误:语法错误,此集合实例上不存在意外的“use”(T_use),预期的“')属性[users]。关系中应该有错误,您确定用户和子组之间存在多对多关系吗?哦。。!对不起亲爱的我知道了。。。现在很好,谢谢
    $users = User::whereHas('groups', function ($query) use ($groupId) {
            $query->where('group_id', $groupId);})
            ->whereDoesntHave('subgroups', function ($query) use ($groupId) {
                $query->whereHas('groups', function ($q) use ($groupId) {
                    $q->where('group_id', '=', $groupId);
                });
            })->get();