Php Laravel获取不在团队中的用户
我有一个用户表和一个销售团队表 一个用户只能是一个销售团队的领导者。一个销售团队只能有一名领导 在销售团队中,我有一个领导者id(users.id)。 在users表中,我还有一个role_id列(role id 3代表领导者) 在用户模型上,我具有以下功能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
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列中的那些