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

Метод getReference

Метод getReference класса EntityManager возвращает прокси-объект сущности по её идентификатору. Первым параметром передаётся имя класса сущности, вторым - значение первичного ключа. В отличие от метода find, запрос к базе данных сразу не выполняется: реальные данные подгружаются из БД только при первом обращении к свойствам прокси-объекта. Если записи с таким идентификатором нет, то при обращении к прокси-объекту будет выброшено исключение EntityNotFoundException.

Синтаксис

$res = $em->getReference(className, id);

Пример

Давайте получим ссылку на сущность Article с идентификатором 1 и выведем её заголовок:

<?php namespace App\Controller; use App\Entity\Article; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; class ArticleController extends AbstractController { public function index(EntityManagerInterface $em): Response { $article = $em->getReference(Article::class, 1); return new Response($article->getTitle()); } } ?>

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

"abcde"

Пример

Давайте получим ссылку на сущность и используем её в связях - например, проставим автора статьи по его идентификатору:

<?php namespace App\Controller; use App\Entity\Article; use App\Entity\User; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; class ArticleController extends AbstractController { public function index(EntityManagerInterface $em): Response { $article = $em->getReference(Article::class, 1); $user = $em->getReference(User::class, 5); $article->setAuthor($user); $em->flush(); return new Response('updated'); } } ?>

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

"updated"

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

  • класс EntityManager,
    который управляет сущностями Doctrine
  • метод find,
    который возвращает сущность по её идентификатору с запросом к БД
  • метод persist,
    который ставит сущность в очередь на сохранение
  • метод flush,
    который сохраняет изменения в базе данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить