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

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

Метод create класса Criteria создаёт новый объект критериев выборки. Критерии используются для фильтрации, сортировки и ограничения количества элементов коллекции ArrayCollection. Метод является статическим и возвращает готовый объект Criteria, к которому затем можно применять условия через where, andWhere, orWhere, orderBy, setFirstResult и setMaxResults.

Синтаксис

Criteria::create()

Пример

Давайте создадим критерий и отфильтруем коллекцию по значению поля status:

<?php namespace AppService; use DoctrineCommonCollectionsArrayCollection; use DoctrineCommonCollectionsCriteria; class ArticleService { public function filter(): array { $collection = new ArrayCollection([ ['title' => 'article 1', 'status' => 'active'], ['title' => 'article 2', 'status' => 'draft'], ['title' => 'article 3', 'status' => 'active'], ]); $criteria = Criteria::create() ->where(Criteria::expr()->eq('status', 'active')); return $collection->matching($criteria)->toArray(); } } ?>

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

[ ["title" => "article 1", "status" => "active"], ["title" => "article 3", "status" => "active"], ]

Пример

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

<?php namespace AppService; use DoctrineCommonCollectionsArrayCollection; use DoctrineCommonCollectionsCriteria; class ArticleService { public function sort(): array { $collection = new ArrayCollection([ ['title' => 'article 1', 'views' => 10], ['title' => 'article 2', 'views' => 30], ['title' => 'article 3', 'views' => 20], ]); $criteria = Criteria::create() ->orderBy(['views' => 'DESC']) ->setMaxResults(2); return $collection->matching($criteria)->toArray(); } } ?>

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

[ ["title" => "article 2", "views" => 30], ["title" => "article 3", "views" => 20], ]

Пример

Давайте объединим несколько условий через andWhere и orWhere:

<?php namespace AppService; use DoctrineCommonCollectionsArrayCollection; use DoctrineCommonCollectionsCriteria; class ArticleService { public function combine(): array { $collection = new ArrayCollection([ ['title' => 'article 1', 'status' => 'active', 'views' => 10], ['title' => 'article 2', 'status' => 'draft', 'views' => 50], ['title' => 'article 3', 'status' => 'active', 'views' => 30], ]); $criteria = Criteria::create() ->where(Criteria::expr()->eq('status', 'active')) ->andWhere(Criteria::expr()->gt('views', 20)); return $collection->matching($criteria)->toArray(); } } ?>

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

[ ["title" => "article 3", "status" => "active", "views" => 30], ]

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

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