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

Метод setHint

Метод setHint класса Query позволяет передать дополнительную инструкцию для внутренних механизмов Doctrine. Первым параметром передаётся имя подсказки в виде строки, вторым - её значение. Например, можно включить пользовательский гидратор или изменить поведение кэша результатов.

Синтаксис

setHint(string $name, mixed $value): static

Пример

Давайте создадим запрос и добавим подсказку для пользовательского гидратора:

<?php namespace App\Repository; use App\Entity\Article; use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\Query; class ArticleRepository { private EntityManagerInterface $em; public function __construct(EntityManagerInterface $em) { $this->em = $em; } public function findWithHint(): array { $query = $this->em->createQuery( 'SELECT a FROM App\Entity\Article a' ); $query->setHint( Query::HINT_CUSTOM_OUTPUT_WALKER, 'App\Doctrine\CustomOutputWalker' ); return $query->getResult(); } } ?>

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

["article 1", "article 2", "article 3"]

Пример

Давайте включим кэширование запроса с помощью подсказки HINT_ENABLE_RESULT_CACHE:

<?php namespace App\Repository; use App\Entity\Article; use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\Query; class ArticleRepository { private EntityManagerInterface $em; public function __construct(EntityManagerInterface $em) { $this->em = $em; } public function findCached(): array { $query = $this->em->createQuery( 'SELECT a FROM App\Entity\Article a' ); $query->setHint( Query::HINT_ENABLE_RESULT_CACHE, true ); return $query->getResult(); } } ?>

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

["article 1", "article 2", "article 3"]

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

  • класс Query,
    который представляет собой DQL-запрос
  • метод setParameter,
    который привязывает значение к параметру запроса
  • метод setHydrationMode,
    который задаёт способ гидратации результатов
  • метод useResultCache,
    который включает кэширование результатов запроса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить