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

Метод getDQL

Метод getDQL возвращает итоговую строку DQL-запроса, которую построил объект QueryBuilder. Он не выполняет запрос, а только собирает все части (SELECT, FROM, WHERE и так далее) в одну строку. Это удобно для отладки, логирования или передачи запроса в другие сервисы.

Синтаксис

public function getDQL(): string

Пример

Давайте создадим простой построитель и посмотрим, какую строку вернёт метод getDQL:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use DoctrineORMEntityManagerInterface; class ArticleController extends AbstractController { public function index(EntityManagerInterface $em): Response { $qb = $em->createQueryBuilder(); $qb->select('a') ->from('AppEntityArticle', 'a') ->where('a.id = :id') ->setParameter('id', 1); $dql = $qb->getDQL(); return new Response($dql); } } ?>

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

"SELECT a FROM AppEntityArticle a WHERE a.id = :id"

Пример

Метод getDQL также можно использовать для отладки сложных запросов с несколькими условиями и сортировкой:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use DoctrineORMEntityManagerInterface; class ArticleController extends AbstractController { public function index(EntityManagerInterface $em): Response { $qb = $em->createQueryBuilder(); $qb->select('a.title', 'a.text') ->from('AppEntityArticle', 'a') ->where('a.id > :minId') ->andWhere('a.active = :active') ->setParameter('minId', 10) ->setParameter('active', true) ->orderBy('a.title', 'ASC') ->setMaxResults(5); $dql = $qb->getDQL(); return new Response($dql); } } ?>

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

"SELECT a.title, a.text FROM AppEntityArticle a WHERE a.id > :minId AND a.active = :active ORDER BY a.title ASC"

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

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