如何使用雄辩/流利地从单个查询插入多行

2022-08-30 06:24:43

我有以下查询:

  $query = UserSubject::where('user_id', Auth::id())->select('subject_id')->get();

正如预期的那样,我得到以下结果:

[{"user_id":8,"subject_id":9},{"user_id":8,"subject_id":2}]

有没有办法将上述结果复制到另一个表中,以便我的表看起来像这样?

ID|user_id|subject_id
1 |8      |9
2 |8      |2

我遇到的问题是,可以期望任意数量的行,因此我不确定如何迭代未知数量的行。$query


答案 1

使用Eloquent或查询构建器在Laravel中进行批量插入非常容易。

您可以使用以下方法。

$data = [
    ['user_id'=>'Coder 1', 'subject_id'=> 4096],
    ['user_id'=>'Coder 2', 'subject_id'=> 2048],
    //...
];

Model::insert($data); // Eloquent approach
DB::table('table')->insert($data); // Query Builder approach

在你的例子中,你已经在变量中拥有数据。$query


答案 2

使用雄辩

$data = array(
    array('user_id'=>'Coder 1', 'subject_id'=> 4096),
    array('user_id'=>'Coder 2', 'subject_id'=> 2048),
    //...
);

Model::insert($data);

推荐