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

Исключение EntityNotFoundException

Исключение EntityNotFoundException относится к классу ошибок Doctrine ORM и выбрасывается методом find или findOneBy, когда запись с указанным идентификатором отсутствует в базе данных. Первым параметром конструктора передаётся текст сообщения об ошибке.

Синтаксис

<?php use Doctrine\ORM\EntityNotFoundException; throw EntityNotFoundException::fromClassNameAndIdentifier( string $className, array $identifier ); ?>

Пример

Давайте попробуем найти сущность по идентификатору и обработаем исключение:

<?php namespace App\Controller; use App\Entity\Article; use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityNotFoundException; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; class ArticleController extends AbstractController { public function show(EntityManagerInterface $em, int $id): Response { try { $article = $em->find(Article::class, $id); if ($article === null) { throw EntityNotFoundException::fromClassNameAndIdentifier( Article::class, [$id] ); } return new Response($article->getTitle()); } catch (EntityNotFoundException $e) { return new Response($e->getMessage()); } } } ?>

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

"Entity of type App\Entity\Article not found."

Пример

Давайте получим класс и идентификатор ненайденной сущности:

<?php namespace App\Controller; use App\Entity\Article; use Doctrine\ORM\EntityNotFoundException; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; class ArticleController extends AbstractController { public function info(): Response { $e = EntityNotFoundException::fromClassNameAndIdentifier( Article::class, [42] ); echo $e->getEntityClass(); echo $e->getEntityIdentifier(); return new Response('done'); } } ?>

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

["App\Entity\Article", [42]]

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

  • исключение NotFoundHttpException,
    которое возвращает ответ 404
  • исключение NoResultException,
    которое выбрасывается при пустом результате запроса
  • исключение NonUniqueResultException,
    которое выбрасывается при нескольких результатах
  • исключение FlattenException,
    которое преобразует исключение в ответ
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить