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

Метод getResult

Метод getResult принадлежит классу Query и выполняет подготовленный DQL-запрос. Он возвращает массив результатов. В отличие от метода getOneOrNullResult, который возвращает только одну запись или null, данный метод отдаёт все найденные строки. Если записей нет, возвращается пустой массив. Метод не принимает параметров.

Синтаксис

public function getResult(): array

Пример

Давайте создадим Query и получим все записи из таблицы 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('/article', name: 'article_index')] public function index(EntityManagerInterface $em): Response { $dql = 'SELECT a FROM App\Entity\Article a'; $query = $em->createQuery($dql); $res = $query->getResult(); return new Response(count($res)); } } ?>

Результат выполнения кода при наличии трёх записей:

3

Пример

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

<?php namespace App\Controller; 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/names', name: 'article_names')] public function names(EntityManagerInterface $em): Response { $dql = 'SELECT a.id, a.text FROM App\Entity\Article a'; $query = $em->createQuery($dql); $res = $query->getResult(); return new Response(json_encode($res)); } } ?>

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

[{"id": 1, "text": "article 1"}, {"id": 2, "text": "article 2"}]

Пример

Давайте проверим поведение метода, когда записей в базе нет:

<?php namespace App\Controller; 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/empty', name: 'article_empty')] public function empty(EntityManagerInterface $em): Response { $dql = 'SELECT a FROM App\Entity\Article a WHERE a.id > 100'; $query = $em->createQuery($dql); $res = $query->getResult(); return new Response(json_encode($res)); } } ?>

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

[]

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

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