РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1009 of 1392 menu

Метод chunk

Метод chunk применяется к запросу Eloquent или Query Builder и позволяет обрабатывать большое количество записей по частям. Первым параметром передаётся размер порции (количество записей в каждой группе), вторым - коллбек-функция, которая будет вызвана для каждой группы записей. Метод автоматически управляет смещением и выполняется до тех пор, пока не будут обработаны все записи.

Синтаксис

<?php Model::chunk($size, function ($chunk) { // обработка группы записей }); ?>

Пример

Давайте обработаем все статьи по частям, выводя их заголовки:

<?php use App\Models\Article; Article::chunk(100, function ($articles) { foreach ($articles as $article) { echo $article->title; } }); ?>

Результат выполнения кода:

"article 1" "article 2" "article 3" ...

Пример

Обновим статус всех статей в порциях по 50 записей:

<?php use App\Models\Article; Article::chunk(50, function ($articles) { foreach ($articles as $article) { $article->status = 'processed'; $article->save(); } }); ?>

Пример

Используем метод с условиями для обработки только опубликованных статей:

<?php use App\Models\Article; $res = Article::where('status', 'published') ->chunk(25, function ($articles) { foreach ($articles as $article) { echo $article->title . ' - ' . $article->status; } }); ?>

Результат выполнения кода:

"article 1 - published" "article 2 - published" "article 3 - published"

Пример

Остановим обработку, вернув false из коллбека:

<?php use App\Models\Article; Article::chunk(30, function ($articles) { foreach ($articles as $article) { if ($article->id > 10) { return false; } echo $article->title; } }); ?>

Результат выполнения кода:

"article 1" "article 2" "article 3" ...

Смотрите также

  • метод chunk для коллекций,
    который разбивает коллекцию на части
  • метод split,
    который разбивает коллекцию на указанное количество групп
  • метод take,
    который возвращает первые N элементов коллекции
  • метод skip,
    который пропускает указанное количество элементов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить