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

Класс QueryBuilder

Класс QueryBuilder создаётся через метод createQueryBuilder репозитория сущности и позволяет собирать DQL-запрос по частям: выбирать поля, задавать таблицу, условия, сортировку, лимиты и параметры. Каждый метод возвращает сам объект QueryBuilder, поэтому вызовы можно выстраивать в цепочку. Готовый запрос получают через метод getQuery.

Синтаксис

$qb = $repository->createQueryBuilder('alias');

Пример

Давайте создадим QueryBuilder и выберем все записи сущности Article:

<?php namespace App\Controller; use App\Entity\Article; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/articles', name: 'article_index')] public function index(EntityManagerInterface $em): Response { $qb = $em->getRepository(Article::class)->createQueryBuilder('a'); $qb->select('a'); $res = $qb->getQuery()->getResult(); return new Response((string) count($res)); } } ?>

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

"5"

Пример

Давайте добавим условие на поле title и ограничим выборку:

<?php namespace App\Controller; use App\Entity\Article; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/articles/filtered', name: 'article_filtered')] public function filtered(EntityManagerInterface $em): Response { $qb = $em->getRepository(Article::class)->createQueryBuilder('a'); $qb->select('a') ->where('a.title = :title') ->setParameter('title', 'abcde') ->orderBy('a.id', 'DESC') ->setMaxResults(10); $res = $qb->getQuery()->getResult(); return new Response((string) count($res)); } } ?>

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

"2"

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

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