數(shù)據(jù)分批處理 chunk
模型也支持對返回的數(shù)據(jù)分批處理。特別是如果你需要處理成千上百條數(shù)據(jù)庫記錄,可以考慮使用 chunk 方法,該方法一次獲取結(jié)果集的一小塊,然后填充每一小塊數(shù)據(jù)到要處理的閉包,該方法在編寫處理大量數(shù)據(jù)庫記錄的時候非常有用。
比如,我們可以全部用戶表數(shù)據(jù)進(jìn)行分批處理,每次處理 20 個用戶記錄:
<?php
(new User())->chunk(function (User $user) {
// 處理 user 模型對象
$user->updateWithLimit(['status' => 1]);
}, 20);