Laravel的用户不属于一个团队


Laravel get users that are not in a team

我有一个users表和一个salesTeams表。

一个用户只能是一个sale - steam的leader。一个销售团队只能有一个领导。

在salesTeams上,我有一个leader_id (users.id)。在users表中,我还有一个role_id列(角色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;
}