【发布时间】:2019-12-11 10:51:27
【问题描述】:
我有一个帖子给出了答案,但后来我发现我遇到了限制:how to get list of users who are not under belongsToMany relation under a table in laravel?
所以创建一个我确实有答案的新线程,但现在我如何使用任何预构建函数(如 doesntHave 或完全其他的东西)来优化它。
下面是代码,它为我提供了属于某个组且未分配任何任务的用户列表。一个组可以有多个任务,因此只需要列出未分配任务的用户。
$gid = $task->group_id;
$MembersList = $task->members;
$group_subscribers = Group::with(['subscribedUsers' => function($q){
$q->select('id');
}])->whereId($gid)->get();
$group_subscribers = $group_subscribers[0]->subscribedUsers->pluck('id')->toArray();
$alreadyMembers = DB::table('task_user')->select('user_id as id')->whereIn('user_id', $group_subscribers)->pluck('id')->toArray();
$finalList = array_diff($group_subscribers, $alreadyMembers);
$users = User::whereIn('id', $finalList)->get();
return $users;
有什么方法可以改进上面的代码?
【问题讨论】:
标签: laravel eloquent multiple-conditions