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

Метод setMaxResults класса Criteria

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

Синтаксис

$criteria->setMaxResults(int $maxResults): static

Пример

Давайте создадим критерий с лимитом в 3 элемента и применим его к коллекции:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Criteria; class ArticleController extends AbstractController { public function index(): Response { $collection = new ArrayCollection([1, 2, 3, 4, 5]); $criteria = Criteria::create(); $criteria->setMaxResults(3); $res = $collection->matching($criteria)->toArray(); return new Response(json_encode($res)); } } ?>

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

[1, 2, 3]

Пример

Давайте объединим лимит с сортировкой по убыванию:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Criteria; class ArticleController extends AbstractController { public function index(): Response { $collection = new ArrayCollection([1, 2, 3, 4, 5]); $criteria = Criteria::create(); $criteria->orderBy(['value' => 'DESC']); $criteria->setMaxResults(2); $res = $collection->matching($criteria)->toArray(); return new Response(json_encode($res)); } } ?>

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

[5, 4]

Пример

Давайте используем setMaxResults вместе с setFirstResult для постраничной выборки:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Criteria; class ArticleController extends AbstractController { public function index(): Response { $collection = new ArrayCollection([1, 2, 3, 4, 5]); $criteria = Criteria::create(); $criteria->setFirstResult(2); $criteria->setMaxResults(2); $res = $collection->matching($criteria)->toArray(); return new Response(json_encode($res)); } } ?>

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

[3, 4]

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

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