Php Laravel获取不在团队中的用户

Php Laravel获取不在团队中的用户,php,sql,laravel,eloquent,relationship,Php,Sql,Laravel,Eloquent,Relationship,我有一个用户表和一个销售团队表 一个用户只能是一个销售团队的领导者。一个销售团队只能有一名领导 在销售团队中,我有一个领导者id(users.id)。 在users表中,我还有一个role_id列(role id 3代表领导者) 在用户模型上,我具有以下功能 public function salesTeam(){ return $this->hasOne('App\Models\SalesTeam', 'leader_id'); } 检索用户团队(如果有) 在UserRoles

我有一个用户表和一个销售团队表

一个用户只能是一个销售团队的领导者。一个销售团队只能有一名领导

在销售团队中,我有一个领导者id(users.id)。 在users表中,我还有一个role_id列(role id 3代表领导者) 在用户模型上,我具有以下功能

public function salesTeam(){
    return $this->hasOne('App\Models\SalesTeam', 'leader_id');
}
检索用户团队(如果有)

在UserRoles模型上,我有以下功能

public function scopeOnlyLeaders($query) {

        $query->where('id', 3)->with('users');

        return $query;
    }
使所有具有角色id的用户共同响应领导者

我需要一个函数来检索当前未分配给团队的所有领导者。 目前我唯一的解决方案是原始sql,但我确信我忽略了雄辩的文档中的某些内容

public function scopeOnlyLeaders($query) {

    $query->with(['users' => function ($query) {
        $query->select('users.*')
        $query->leftJoin('salesteam', 'salesteam.id', '=', 'users.leader_id')
            ->whereNull('leader_id');
    }]);

    return $query;
}
试着这样做:

public function scopeOnlyLeaders($query) {

    $query->with(['users' => function ($query) {
        $query->select('users.*')
        $query->leftJoin('salesteam', 'salesteam.id', '=', 'users.leader_id')
            ->whereNull('leader_id');
    }]);

    return $query;
}

这是完全一样的。我想要当前未分配给任何团队的用户。因此,那些id不在SalesTeam表的leader_id列中的人也会这样做。我想要当前未分配给任何团队的用户。因此,id不在SalesTeam表的leader_id列中的那些