我有一个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;
}