Метод 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,
который возвращает скалярный результат