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

Метод each

Метод each применяется к коллекции или результату запроса Eloquent и позволяет обработать каждую запись отдельно. Метод принимает замыкание, в которое передаётся текущий элемент коллекции и ключ. Возвращает метод исходную коллекцию. Если внутри замыкания вернуть false, то итерация прервётся досрочно.

Синтаксис

<?php Model::each($callback); ?>

Пример

Давайте обработаем все записи модели Article и выведем заголовки:

<?php namespace AppHttpControllers; use AppModelsArticle; class ArticleController extends Controller { public function index() { $articles = Article::all()->each(function ($article) { echo $article->title . "\n"; }); } } ?>

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

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

Пример

Давайте обработаем записи и используем ключ элемента:

<?php use AppModelsArticle; $articles = Article::where('status', 'published')->get(); $articles->each(function ($article, $key) { echo "Key: {$key}, Title: {$article->title}\n"; }); ?>

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

"Key: 0, Title: article 1" "Key: 1, Title: article 2" "Key: 2, Title: article 3"

Пример

Давайте прервём итерацию после определённого элемента:

<?php use AppModelsArticle; $articles = Article::all(); $res = $articles->each(function ($article, $key) { echo $article->title . "\n"; if ($key === 1) { return false; } }); ?>

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

"article 1" "article 2"

Пример

Давайте изменим значения элементов внутри итерации:

<?php use AppModelsArticle; $articles = Article::all(); $articles->each(function ($article, $key) { $article->title = 'New title'; $article->save(); }); foreach ($articles as $article) { echo $article->title . "\n"; } ?>

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

"New title" "New title" "New title"

Пример

Давайте используем метод each для обработки большого количества записей с разбивкой на части с помощью chunk:

<?php use AppModelsArticle; Article::chunk(100, function ($chunk) { $chunk->each(function ($article) { echo $article->title . "\n"; }); }); ?>

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

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

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

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