Как не нужно использовать chunk()

Изображение поста

Под капотом chunk() представляет из себя просто оффсет с лимитом. Каждый новый запрос выглядит примерно так:

Проблема может появиться если использовать данный метод совместно с update(). В примере ниже, вопреки ожиданиям, обновится только половина нужных вам записей.

Разберем запросы по шагам:


Для решения, как вариант, можно использовать метод take(), который по сути является алиасом к методу limit(). Все то же самое, только без оффсета:

Так же подойдет chunkById(). Данный метод отличается от chunk() тем, что использует id и limit вместо limit и offset. Для него запросы выглядят так:

Блок комментариев