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

Метод getSingleScalarResult класса Query

Метод getSingleScalarResult класса Query в Doctrine выполняет запрос и возвращает первое значение из первой строки результата. Метод удобен, когда запрос заведомо должен вернуть одно число или одну строку, например результат функции COUNT или MAX. Если запрос вернёт больше одной строки или больше одного столбца, метод выбросит исключение.

Синтаксис

public function getSingleScalarResult(): mixed

Пример

Давайте посчитаем количество статей в базе через COUNT:

<?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('/article/count', name: 'article_count')] public function count(EntityManagerInterface $em): Response { $qb = $em->createQueryBuilder(); $qb->select('COUNT(a.id)') ->from(Article::class, 'a'); $res = $qb->getQuery()->getSingleScalarResult(); return new Response((string) $res); } } ?>

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

5

Пример

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

<?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('/article/max-id', name: 'article_max_id')] public function maxId(EntityManagerInterface $em): Response { $qb = $em->createQueryBuilder(); $qb->select('MAX(a.id)') ->from(Article::class, 'a'); $res = $qb->getQuery()->getSingleScalarResult(); return new Response((string) $res); } } ?>

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

42

Пример

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

<?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('/article/first-title', name: 'article_first_title')] public function firstTitle(EntityManagerInterface $em): Response { $qb = $em->createQueryBuilder(); $qb->select('a.title') ->from(Article::class, 'a') ->orderBy('a.id', 'ASC') ->setMaxResults(1); $res = $qb->getQuery()->getSingleScalarResult(); return new Response($res); } } ?>

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

"article"

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

  • класс Query,
    который представляет собой запрос Doctrine
  • метод getScalarResult,
    который возвращает массив скалярных значений
  • метод getSingleResult,
    который возвращает единственный объект
  • метод getOneOrNullResult,
    который возвращает один объект или null
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить