我有一个功能,当一个小组用培训/用户更新时,它会循环浏览用户当前分配的所有培训,并为他们添加任何缺少的培训。
我正在使用Laravel的Eloquent。
我想知道,有没有办法让我可以急切加载'$ user_list'以便我不会执行多个查询?与create相同,是否有某种批量创建选项?我的功能如下。
public function assignTraining($group, $users)
{
$group_list = $group->trainings()->get();
$data = [];
foreach ($users as $user_id){
$data['user_id'] = $user_id;
$user_list = User::find($user_id)->trainings()->get();
$training_list = $group_list->diff($user_list)->lists('id');
foreach ($training_list as $training_id){
$data['training_id'] = $training_id;
Note::create($data);
}
}
}
至于关系,
用户和培训都可以成为群组的一部分。他们甚至可以成为同一群体的一部分。此外,还可以为许多用户分配许多不同的培训。