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

Метод addSelect

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

Синтаксис

addSelect(string|array $select): self

Пример

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

<?php namespace AppRepository; use AppEntityArticle; use DoctrineBundleDoctrineBundleRepositoryServiceEntityRepository; use DoctrinePersistenceManagerRegistry; class ArticleRepository extends ServiceEntityRepository { public function __construct(ManagerRegistry $registry) { parent::__construct($registry, Article::class); } public function findArticleFields(): array { $qb = $this->createQueryBuilder('a'); $qb->select('a.id') ->addSelect('a.title') ->addSelect('a.text'); return $qb->getQuery()->getResult(); } } ?>

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

[['id' => 1, 'title' => 'article 1', 'text' => 'abcde'], ['id' => 2, 'title' => 'article 2', 'text' => 'abcde']]

Пример

Давайте передадим массив полей в метод addSelect для добавления сразу нескольких полей:

<?php namespace AppRepository; use AppEntityArticle; use DoctrineBundleDoctrineBundleRepositoryServiceEntityRepository; use DoctrinePersistenceManagerRegistry; class ArticleRepository extends ServiceEntityRepository { public function __construct(ManagerRegistry $registry) { parent::__construct($registry, Article::class); } public function findArticleFields(): array { $qb = $this->createQueryBuilder('a'); $qb->select('a.id') ->addSelect(['a.title', 'a.text', 'a.datetime']); return $qb->getQuery()->getResult(); } } ?>

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

[['id' => 1, 'title' => 'article 1', 'text' => 'abcde', 'datetime' => '2024-01-01 12:00:00'], ['id' => 2, 'title' => 'article 2', 'text' => 'abcde', 'datetime' => '2024-01-02 12:00:00']]

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

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