我希望得到所有非公司经理的用户。
我有一个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的所有用户,但它不会过滤掉那些经理人。