W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
如果你需要處理數以千計的 Eloquent 結果,使用 chunk
命令。 chunk
方法會檢索 Eloquent 模型中的『分塊』將他們提供給指定的 Closure
處理。在處理大型結果集時,使用 chunk
方法可以節(jié)省內存:
Flight::chunk(200, function ($flights) {
foreach ($flights as $flight) {
//
}
});
傳遞到方法的第一個參數是希望每個『分塊』接收的數據量。閉包作為第二個參數傳遞,它在每次從數據庫中檢索分塊的時候調用。它將執(zhí)行數據庫查詢把檢索分塊的結果傳遞給閉包方法。
如果要基于迭代結果時也要更新的列篩選 chunk
方法的結果,則應使用 chunkById
方法。在這種情況下使用 chunk
方法可能會導致意外和不一致的結果:
Flight::where('departed', true)->chunkById(200, function ($flights) {
$flights->each->update(['departed' => false]);
});
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯系方式:
更多建議: