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

Метод getEntityManager

Метод getEntityManager класса ServiceEntityRepository возвращает объект EntityManager, который связан с репозиторием. Через него можно сохранять, обновлять и удалять сущности, а также работать с транзакциями. Метод не принимает параметров и доступен внутри любого репозитория, унаследованного от ServiceEntityRepository.

Синтаксис

public function getEntityManager(): EntityManagerInterface

Пример

Давайте сохраним новую сущность через метод getEntityManager внутри репозитория:

<?php namespace App\Repository; use App\Entity\Article; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\Persistence\ManagerRegistry; class ArticleRepository extends ServiceEntityRepository { public function __construct(ManagerRegistry $registry) { parent::__construct($registry, Article::class); } public function save(Article $article): void { $em = $this->getEntityManager(); $em->persist($article); $em->flush(); } } ?>

Пример

Давайте удалим сущность через метод getEntityManager внутри репозитория:

<?php namespace App\Repository; use App\Entity\Article; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\Persistence\ManagerRegistry; class ArticleRepository extends ServiceEntityRepository { public function __construct(ManagerRegistry $registry) { parent::__construct($registry, Article::class); } public function remove(Article $article): void { $em = $this->getEntityManager(); $em->remove($article); $em->flush(); } } ?>

Пример

Давайте выполним запрос через метод getEntityManager внутри репозитория:

<?php namespace App\Repository; use App\Entity\Article; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\Persistence\ManagerRegistry; class ArticleRepository extends ServiceEntityRepository { public function __construct(ManagerRegistry $registry) { parent::__construct($registry, Article::class); } public function findPublished(): array { $em = $this->getEntityManager(); $query = $em->createQuery( 'SELECT a FROM App\Entity\Article a WHERE a.published = :published' )->setParameter('published', true); return $query->getResult(); } } ?>

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

[Article, Article, Article]

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

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