Intereting Posts

Странная доктрина EntityNotFoundException

Я столкнулся с странным поведением с проблемой Symfony и Doctrine, которая на самом деле обнаружила, что может быть связана с этой ошибкой.

request.CRITICAL: Неподготовлено PHP Exception Doctrine \ ORM \ EntityNotFoundException: «Объект не найден». на странице /dev/vendor/doctrine/orm/lib/Doctrine/ORM/Proxy/ProxyFactory.php 177 {"exception": "[object] (Doctrine \ ORM \ EntityNotFoundException (код: 0)

Чтобы предоставить некоторые примеры кода:

$nextItems = $this->itemManager->findNextItemByCatId($catId, 2, $allItems); 

и затем я присваиваю два возвращенных результата следующим образом:

 $output["next"] = $nextItems[0]; $output["following"] = $nextItems[1]; 

которые затем фактически возвращаются через API.

Однако, когда для целей тестирования я назначаю случайные значения:

 $output["next"] = "Test value 1"; $output["following"] = "Test value 2"; 

то никаких исключений и ошибок не возникает, а статус ответа – 200, как и ожидалось.

Есть идеи?

Я боролся с этим несколько часов, после чего нашел два решения:

  1. применить метод обхода доктрины, по строке 758 BasicEntityPersister

изменение:

  return $entities ? $entities[0] : null; 

чтобы:

  return $entities ? $entities[0] : $entity; 
  1. регенерировать кеш-память для Symfony:

     composer run-script post-update-cmd --no-dev 
    • для 2 я также обновил mysql до 5.6

Может быть, может быть, очевидно, но вы проверяете, возвращают ли ваши запросы значения? О вашей сущности, сделайте shure, без ошибок ( doctrine orm:validate-schema ).
И, кстати, у меня есть некоторые проблемы с прокси-каталогом – normaly на OS X ( Doctrine 2. Auto generate proxy )