Laravel : использование lazy со смещением и ограничением, похоже, не работает

#laravel #eloquent

Вопрос:

Я пытаюсь разделить некоторую обработку процесса моих моделей на несколько заданий. Допустим, у меня есть 300 моделей, которые я хочу обработать. Я хочу запустить 3 задания, каждое задание будет обрабатывать 100 моделей. В каждой работе я хочу лениво загружать группы из 10 моделей.

Если я выполню следующий код :

 $models = MyModel::offset(0)->limit(100)->lazy(10);
$j = 0;

foreach ($models as $model) {
  $j  ;
}
echo $j;
 

На выходе получается :
300
Где я думал, что нужно обработать только 100 моделей.

Я не понимаю, почему обрабатываются все мои модели.

Если кто-то знает правду … 🙂

Ответ №1:

Ну, кажется, я заблудился, это работает:

 MyModel::lazy(10)->skip(0)->take(100);