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

Метод contains

Метод contains класса EntityManager проверяет, управляется ли переданная сущность данным менеджером сущностей. Первым параметром передаётся объект сущности. Метод возвращает true, если сущность находится в состоянии managed, и false в противном случае. Сущность считается управляемой после вызова persist или после загрузки из базы данных через find, getRepository и подобные методы. Если сущность была отсоединена через detach или clear, метод вернёт false.

Синтаксис

$em->contains($entity)

Пример

Давайте создадим сущность и проверим, управляется ли она менеджером до вызова persist:

<?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 = new Article(); $article->setTitle('abcde'); $res = $em->contains($article); return new Response(var_export($res, true)); } } ?>

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

false

Пример

Теперь вызовем persist и снова проверим сущность:

<?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 = new Article(); $article->setTitle('abcde'); $em->persist($article); $res = $em->contains($article); return new Response(var_export($res, true)); } } ?>

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

true

Пример

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

<?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 = new Article(); $article->setTitle('abcde'); $em->persist($article); $em->detach($article); $res = $em->contains($article); return new Response(var_export($res, true)); } } ?>

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

false

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

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