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