使用 Laravel Eloquent/Fluent 批次插入多行資料
本例需要將查詢結果資料插入另一個表,同時將結果轉換為特定格式。主要挑戰在於處理結果中行數的潛在變化。
利用 Laravel 的批次插入功能
幸運的是,Laravel 的 Eloquent 和查詢建構器提供了方便的批次插入方法。您可以利用這些方法來達到預期的結果:
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中文網其他相關文章!