Php 雄辩而急切的加载&;急切储蓄
我有一个功能,当一个组被更新为培训/用户时,它会循环完成用户当前分配的所有培训,并为他们添加任何缺失的培训 我用的是拉威尔的雄辩 我想知道,是否有一种方法可以快速加载“$user_list”,这样我就不会执行多个查询了?与create相同,是否有用于某种批量创建的选项?我的功能如下Php 雄辩而急切的加载&;急切储蓄,php,laravel,eloquent,Php,Laravel,Eloquent,我有一个功能,当一个组被更新为培训/用户时,它会循环完成用户当前分配的所有培训,并为他们添加任何缺失的培训 我用的是拉威尔的雄辩 我想知道,是否有一种方法可以快速加载“$user_list”,这样我就不会执行多个查询了?与create相同,是否有用于某种批量创建的选项?我的功能如下 public function assignTraining($group, $users) { $group_list = $group->trainings()->get(); $da
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);
}
}
}
在关系上,
- 用户是具有组的多对多用户(数据透视表是“组\用户”)
- 小组是多对多的培训(数据透视表是“小组培训”)
- 用户是多对多的培训(“笔记”是关键 表名)
用户和培训都可以是组的一部分。他们甚至可以是同一个群体的一部分。另外,许多用户可以被分配到许多不同的培训。您能再解释一下这些关系吗?我用这些关系更新了我原来的问题。我希望有帮助。你能再解释一下这种关系吗?我用这种关系更新了我原来的问题。我希望有帮助。