Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 雄辩而急切的加载&;急切储蓄_Php_Laravel_Eloquent - Fatal编程技术网

Php 雄辩而急切的加载&;急切储蓄

Php 雄辩而急切的加载&;急切储蓄,php,laravel,eloquent,Php,Laravel,Eloquent,我有一个功能,当一个组被更新为培训/用户时,它会循环完成用户当前分配的所有培训,并为他们添加任何缺失的培训 我用的是拉威尔的雄辩 我想知道,是否有一种方法可以快速加载“$user_list”,这样我就不会执行多个查询了?与create相同,是否有用于某种批量创建的选项?我的功能如下 public function assignTraining($group, $users) { $group_list = $group->trainings()->get(); $da

我有一个功能,当一个组被更新为培训/用户时,它会循环完成用户当前分配的所有培训,并为他们添加任何缺失的培训

我用的是拉威尔的雄辩

我想知道,是否有一种方法可以快速加载“$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);
        }
    }
}
在关系上,

  • 用户是具有组的多对多用户(数据透视表是“组\用户”)
  • 小组是多对多的培训(数据透视表是“小组培训”)
  • 用户是多对多的培训(“笔记”是关键 表名)

用户和培训都可以是组的一部分。他们甚至可以是同一个群体的一部分。另外,许多用户可以被分配到许多不同的培训。

您能再解释一下这些关系吗?我用这些关系更新了我原来的问题。我希望有帮助。你能再解释一下这种关系吗?我用这种关系更新了我原来的问题。我希望有帮助。