如何使用口才/stream利从单个查询中插入多行

我有以下查询:

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

使用Eloquent或查询生成器在Laravel中执行批量插入是非常容易的。

您可以使用以下方法。

 $data = array( array('user_id'=>'Coder 1', 'subject_id'=> 4096), array('user_id'=>'Coder 2', 'subject_id'=> 2048), //... ); Model::insert($data); // Eloquent approach DB::table('table')->insert($data); // Query Builder approach 

在你的情况下,你已经有了$queryvariables中的数据。

使用雄辩

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