如何使用口才/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
在你的情况下,你已经有了$query
variables中的数据。
使用雄辩
$data = array( array('user_id'=>'Coder 1', 'subject_id'=> 4096), array('user_id'=>'Coder 2', 'subject_id'=> 2048), //... ); Model::insert($data);