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

Метод addOrderBy

Метод addOrderBy класса QueryBuilder добавляет новую сортировку к запросу, не удаляя ранее установленные через orderBy или addOrderBy. Первым параметром передаётся поле или выражение для сортировки, вторым - направление: 'ASC' или 'DESC'.

Метод возвращает тот же объект QueryBuilder, поэтому вызовы можно выстраивать в цепочку.

Синтаксис

addOrderBy(sort, order)

Пример

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

<?php use Doctrine\ORM\EntityManagerInterface; use App\Entity\Article; class ArticleRepository { public function findByOrder(EntityManagerInterface $em): array { $qb = $em->createQueryBuilder(); $qb->select('a') ->from(Article::class, 'a') ->addOrderBy('a.id', 'ASC'); return $qb->getQuery()->getResult(); } } ?>

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

[Article, Article, Article]

Пример

Давайте добавим две сортировки: сначала по полю title, затем по полю id:

<?php use Doctrine\ORM\EntityManagerInterface; use App\Entity\Article; class ArticleRepository { public function findByOrder(EntityManagerInterface $em): array { $qb = $em->createQueryBuilder(); $qb->select('a') ->from(Article::class, 'a') ->addOrderBy('a.title', 'ASC') ->addOrderBy('a.id', 'DESC'); return $qb->getQuery()->getResult(); } } ?>

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

[Article, Article, Article]

Пример

Давайте сравним поведение orderBy и addOrderBy. Метод orderBy перезаписывает сортировку, а addOrderBy - добавляет:

<?php use Doctrine\ORM\EntityManagerInterface; use App\Entity\Article; class ArticleRepository { public function findByOrder(EntityManagerInterface $em): array { $qb = $em->createQueryBuilder(); $qb->select('a') ->from(Article::class, 'a') ->orderBy('a.id', 'ASC') ->addOrderBy('a.title', 'DESC'); return $qb->getQuery()->getResult(); } } ?>

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

[Article, Article, Article]

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

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