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

Метод lazy

Метод lazy применяется к запросу Eloquent и возвращает экземпляр класса LazyCollection, который позволяет итерироваться по результатам запроса без загрузки всех записей в память одновременно. Это особенно полезно при работе с большими наборами данных, например, при экспорте или пакетной обработке. Метод не принимает параметров.

Синтаксис

<?php Model::lazy(); ?>

Пример

Получим все записи из таблицы статей и обработаем их по одной, выводя заголовки:

<?php namespace App\Http\Controllers; use App\Models\Article; class ArticleController extends Controller { public function index() { $articles = Article::lazy(); foreach ($articles as $article) { echo $article->title; } } } ?>

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

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

Пример

Обработаем записи с условием, выводя только те, у которых поле 'status' равно 'published':

<?php namespace App\Http\Controllers; use App\Models\Article; class ArticleController extends Controller { public function index() { $articles = Article::where('status', 'published')->lazy(); foreach ($articles as $article) { echo $article->title; } } } ?>

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

"article 2" "article 4"

Пример

Выполним обновление всех записей, не перегружая память:

<?php namespace App\Http\Controllers; use App\Models\Article; class ArticleController extends Controller { public function updateAll() { $articles = Article::lazy(); foreach ($articles as $article) { $article->views = $article->views + 1; $article->save(); } echo "All articles updated"; } } ?>

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

"All articles updated"

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

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