Laravel Eloquent/Fluent を使用して複数行のデータをバッチ挿入する
この例では、クエリ結果データを別のテーブルに挿入し、結果を特定の形式に変換する必要があります。主な課題は、結果の行数の潜在的な変化に対処することです。
Laravel の一括挿入機能を使用する
幸いなことに、Laravel の Eloquent とクエリ ビルダーは、便利な一括挿入メソッドを提供します。これらの方法を利用して、望ましい結果を達成できます:
雄弁な方法:
<code class="language-php"> $insertData = collect($query->get())->map(function ($row) { return [ 'user_id' => $row->user_id, 'subject_id' => $row->subject_id, ]; }); Model::insert($insertData->toArray());</code>
クエリビルダーメソッド:
<code class="language-php"> $insertData = collect($query->get())->map(function ($row) { return [ 'user_id' => $row->user_id, 'subject_id' => $row->subject_id, ]; }); DB::table('new_table')->insert($insertData->toArray());</code>
どちらの場合も、$insertData
変数には必要な形式の変換データが含まれます。 insert
メソッドは、指定されたテーブルへの一括挿入操作を処理します。 insert
メソッドがデータを正しく処理できるようにするには、$insertData
メソッドを使用して ->toArray()
を配列に変換する必要があることに注意してください。
以上がLaravel Eloquent とクエリビルダーを使用して一括挿入を効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。