Laravel选择所有没有记录的用户

时间:2015-02-19 16:14:21

标签: php laravel

问题

我希望得到所有非公司经理的用户。

关系

我有一个User模型,可以有一个CompanyGroup。 CompanyGroup可以有很多经理。经理可以管理不同类型的实体,而不仅仅是CompanyGroups,因此这是一种多态关系(但是,与我的问题没有直接关系)。

用户模型

public function group()
{
    return $this->belongsTo('App\CompanyGroup', 'company_group_id');
}

公司集团

public function managers()
{
    // This is polymorphic, as a manager can manage different types of entity.
    return $this->morphMany('App\Manager', 'managable');
}

管理器

public function user()
{
    return $this->belongsTo('App\User', 'user_uuid', 'uuid');
}

我尝试了什么:

// Get all users, with a relationship of 'group', and the group's 'managers'
$users = $this->user->whereHas('group.managers', function($query)use($group)    
{
    // Exclude any users where the user's UUID is present in the managers table
    $query->where('exp_members.uuid', '!=', 'managers.user_uuid');
    })->get();

这产生了什么

什么也没有!它根本没有列出任何用户。管理器表当前为空,因此它应该返回分配了$ group-> id的所有用户。如果我在经理人表格中输入一个随机记录,它将返回分配给他们的组ID的所有用户,但它不会过滤掉那些经理人。

0 个答案:

没有答案