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

Метод setFirstResult

Метод setFirstResult принадлежит классу Criteria и используется для указания смещения при выборке элементов из коллекции. Первым параметром передаётся целое число - индекс элемента, с которого нужно начать выборку. Метод возвращает текущий объект Criteria, что позволяет выстраивать цепочку вызовов.

Этот метод особенно полезен в связке с методом setMaxResults для реализации постраничной навигации.

Синтаксис

$criteria->setFirstResult(int $firstResult): static

Пример

Давайте создадим коллекцию и выберем элементы начиная с индекса 2:

<?php namespace AppService; use DoctrineCommonCollectionsArrayCollection; use DoctrineCommonCollectionsCriteria; class ArticleService { public function getArticles(): array { $collection = new ArrayCollection(['a', 'b', 'c', 'd', 'e']); $criteria = Criteria::create() ->setFirstResult(2); $res = $collection->matching($criteria)->toArray(); return $res; } } ?>

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

["c", "d", "e"]

Пример

Давайте реализуем постраничную навигацию, комбинируя setFirstResult и setMaxResults:

<?php namespace AppService; use DoctrineCommonCollectionsArrayCollection; use DoctrineCommonCollectionsCriteria; class ArticleService { public function getPage(): array { $collection = new ArrayCollection( ['a', 'b', 'c', 'd', 'e', 'f', 'g'] ); $page = 2; $perPage = 3; $offset = ($page - 1) * $perPage; $criteria = Criteria::create() ->setFirstResult($offset) ->setMaxResults($perPage); $res = $collection->matching($criteria)->toArray(); return $res; } } ?>

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

["d", "e", "f"]

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

  • класс Criteria,
    который задаёт условия выборки из коллекции
  • метод setMaxResults,
    который ограничивает количество выбираемых элементов
  • метод orderBy,
    который задаёт сортировку элементов выборки
  • метод matching,
    который применяет критерий к коллекции
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить