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

我有以下疑问:

  $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可以期望任意数量的行,所以我不确定如何遍历未知数量的行。

299224 次浏览

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

您可以使用以下方法。

$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变量中的数据。

用有说服力的

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


Model::insert($data);
在Laravel中使用查询构建器或不使用查询构建器都可以很容易地进行批量插入。

. > /strong> . > /p> .
Entity::upsert([
['name' => 'Pierre Yem Mback', 'city' => 'Eseka', 'salary' => 10000000],
['name' => 'Dial rock 360', 'city' => 'Yaounde', 'salary' => 20000000],
['name' => 'Ndibou La Menace', 'city' => 'Dakar', 'salary' => 40000000]
], ['name', 'city'], ['salary']);