我遇到了Symfony和Doctrine问题的奇怪行为,实际上发现这可能与this bug有关。
request.CRITICAL:未捕获的PHP异常 Doctrine \ ORM \ EntityNotFoundException:“找不到实体。”在 /dev/vendor/doctrine/orm/lib/Doctrine/ORM/Proxy/ProxyFactory.php line 177 {“例外”:“[对象] (Doctrine \ ORM \ EntityNotFoundException(代码:0)
提供一些代码示例:
$moduleId = 1;
$template->modules()
->newPivotStatementForId($moduleId)
->where('order', 3)
->delete()
然后我分配两个返回的结果,如下所示:
$nextItems = $this->itemManager->findNextItemByCatId($catId, 2, $allItems);
然后通过API实际返回。
然而,当出于测试目的时 - 我分配随机值:
$output["next"] = $nextItems[0];
$output["following"] = $nextItems[1];
然后没有异常和错误发生,响应状态为200,正如预期的那样。
这里有什么想法吗?
答案 0 :(得分:3)
我在这几个小时内挣扎然后找到了两个解决方案:
改变:
return $entities ? $entities[0] : null;
到:
return $entities ? $entities[0] : $entity;
重新生成symfony bootstrap缓存:
composer run-script post-update-cmd --no-dev
答案 1 :(得分:2)
也许显而易见,但是你要检查你的查询是否返回值?关于你的实体,使shure无误(doctrine orm:validate-schema
)
顺便说一句,我在代理目录中遇到了一些问题 - 在OS X(Doctrine 2. Auto generating proxies)
答案 2 :(得分:0)
就我而言,我专注于不正确的注释(正如大多数答复所建议的那样),却看不到一个简单的问题。我刚刚导入了损坏的数据库转储。
因此,如果有人再次遇到相同的问题:
(1)使用orm:schema-tool:validate不仅检查正确的批注,还检查数据库是否同步。
(2)始终使用校验和检查下载的数据库!