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

Метод getQuery

Метод getQuery класса QueryBuilder создаёт и возвращает объект Query на основе собранного DQL-запроса. Он не принимает параметров и вызывается в конце цепочки построения запроса. Полученный объект Query можно выполнить методами getResult, getOneOrNullResult, getSingleScalarResult и другими.

Синтаксис

$query = $qb->getQuery();

Пример

Давайте создадим QueryBuilder, выберем все записи и получим объект Query:

<?php namespace AppController; use AppEntityArticle; use DoctrineORMEntityManagerInterface; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(EntityManagerInterface $em): Response { $qb = $em->createQueryBuilder(); $qb->select('a') ->from(Article::class, 'a'); $query = $qb->getQuery(); $res = $query->getResult(); return new Response(count($res)); } } ?>

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

"5"

Пример

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

<?php namespace AppController; use AppEntityArticle; use DoctrineORMEntityManagerInterface; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function show(EntityManagerInterface $em, int $id): Response { $qb = $em->createQueryBuilder(); $qb->select('a') ->from(Article::class, 'a') ->where('a.id = :id') ->setParameter('id', $id); $query = $qb->getQuery(); $article = $query->getOneOrNullResult(); return new Response($article->getTitle()); } } ?>

Результат выполнения кода для статьи с заголовком 'article':

"article"

Пример

Давайте получим скалярное значение - количество записей:

<?php namespace AppController; use AppEntityArticle; use DoctrineORMEntityManagerInterface; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function count(EntityManagerInterface $em): Response { $qb = $em->createQueryBuilder(); $qb->select('COUNT(a.id)') ->from(Article::class, 'a'); $query = $qb->getQuery(); $res = $query->getSingleScalarResult(); return new Response($res); } } ?>

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

"5"

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

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