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

Метод setHydrationMode

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

Синтаксис

$query->setHydrationMode(mode);

Пример

Давайте получим массив из запроса, используя режим HYDRATE_ARRAY:

<?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' ); $query->setHydrationMode(2); $res = $query->getResult(); return new Response(json_encode($res)); } } ?>

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

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

Пример

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

<?php namespace AppController; use DoctrineORMEntityManagerInterface; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function count(EntityManagerInterface $em): Response { $query = $em->createQuery( 'SELECT COUNT(a.id) FROM AppEntityArticle a' ); $query->setHydrationMode(5); $res = $query->getResult(); return new Response((string) $res); } } ?>

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

"5"

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

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