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

Метод getArrayResult

Метод getArrayResult класса Query выполняет построенный запрос и возвращает результат в виде обычного массива. В отличие от getResult метод не возвращает объекты-сущности, а сразу отдаёт массивы со значениями полей. Это удобно, когда нужны только данные, а не управляемые сущности Doctrine. Метод не принимает параметров.

Синтаксис

$res = $query->getArrayResult();

Пример

Давайте получим все записи в виде массива:

<?php namespace AppController; use AppEntityArticle; use DoctrineORMEntityManagerInterface; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(EntityManagerInterface $em): Response { $query = $em->createQuery('SELECT a FROM AppEntityArticle a'); $res = $query->getArrayResult(); return new Response(json_encode($res)); } } ?>

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

[["id" => 1, "title" => "article 1"], ["id" => 2, "title" => "article 2"]]

Пример

Давайте выберем только поле title:

<?php namespace AppController; use AppEntityArticle; use DoctrineORMEntityManagerInterface; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(EntityManagerInterface $em): Response { $query = $em->createQuery('SELECT a.title FROM AppEntityArticle a'); $res = $query->getArrayResult(); return new Response(json_encode($res)); } } ?>

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

[["title" => "article 1"], ["title" => "article 2"]]

Пример

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

<?php namespace AppController; use AppEntityArticle; use DoctrineORMEntityManagerInterface; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(EntityManagerInterface $em): Response { $query = $em->createQuery('SELECT a FROM AppEntityArticle a WHERE a.title = :title'); $query->setParameter('title', 'abcde'); $res = $query->getArrayResult(); return new Response(json_encode($res)); } } ?>

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

[["id" => 5, "title" => "abcde"]]

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

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