У меня проблема с методом Laravel ORM Eloquent chunk(). Он пропустил некоторые результаты. Вот тестовый запрос:
$destinataires = Destinataire::where('statut', '<', 3)
->where('tokenized_at', '<', $date_active)
->chunk($this->chunk, function ($destinataires) {
foreach($destinataires as $destinataire) {
$this->i++;
}
}
echo $this->i;
Он дает 124838 результатов.
Но:
$num_dest = Destinataire::where('statut', '<', 3)
->where('tokenized_at', '<', $date_active)
->count();
echo $num_dest;
дает 249676, поэтому только ДВАЖДЫ в качестве первого примера кода.
My script должен редактировать все соответствующие записи в базе данных. Если я запускаю его несколько раз, он просто раздаёт половину оставшихся записей каждый раз.
Я попытался использовать DB:: table() вместо Модели. Я попытался добавить a → take (20000), но, похоже, это не учитывается. Я повторил запрос с помощью → toSql(), и eveything кажется прекрасным (предложение LIMIT добавляется, когда я добавляю параметр → take()).
Любые предложения?