我有一个用户表和一个salesTeams表。
用户只能成为一个销售团队的领导者。一个销售团队只能有一个领导者。
在salesTeams上我有一个leader_id(users.id)。 在用户表上我还有一个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,但我确信我已经忽略了雄辩的文档中的内容
答案 0 :(得分:0)
试试这样:
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;
}