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

Метод select класса QueryBuilder

Метод select класса QueryBuilder указывает, какие поля сущности должны попасть в результат запроса. Первым параметром передаётся строка или массив строк с DQL-выражениями выборки. Если метод не вызвать, Doctrine по умолчанию выбирает все поля корневой сущности.

Синтаксис

select(string|array $select): self

Пример

Давайте выберем только поля id и title сущности Article:

<?php namespace App\Repository; use App\Entity\Article; use Doctrine\ORM\EntityRepository; class ArticleRepository extends EntityRepository { public function findTitles(): array { return $this->createQueryBuilder('a') ->select('a.id, a.title') ->getQuery() ->getArrayResult(); } } ?>

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

[ ['id' => 1, 'title' => 'article'], ['id' => 2, 'title' => 'hello'], ['id' => 3, 'title' => 'user'], ]

Пример

Давайте передадим массив полей и добавим агрегатную функцию COUNT:

<?php namespace App\Repository; use App\Entity\Article; use Doctrine\ORM\EntityRepository; class ArticleRepository extends EntityRepository { public function countByStatus(): array { return $this->createQueryBuilder('a') ->select(['a.status', 'COUNT(a.id) AS cnt']) ->groupBy('a.status') ->getQuery() ->getArrayResult(); } } ?>

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

[ ['status' => 'draft', 'cnt' => 2], ['status' => 'published', 'cnt' => 5], ]

Пример

Давайте выберем поля через partial и вернём объекты сущности:

<?php namespace App\Repository; use App\Entity\Article; use Doctrine\ORM\EntityRepository; class ArticleRepository extends EntityRepository { public function findPartial(): array { return $this->createQueryBuilder('a') ->select('PARTIAL a.{id, title}') ->getQuery() ->getResult(); } } ?>

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

[ Article { id: 1, title: 'article' }, Article { id: 2, title: 'hello' }, ]

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

  • класс QueryBuilder,
    который строит DQL-запросы
  • метод addSelect,
    который добавляет поля к выборке
  • метод from,
    который задаёт корневую сущность
  • метод getQuery,
    который возвращает объект Query
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить