奇怪的学说 EntityNotFoundException
Strange Doctrine EntityNotFoundException
我在 Symfony 和 Doctrine 问题上遇到了一个奇怪的行为,实际上发现这可能与 this 错误有关。
request.CRITICAL: Uncaught PHP Exception
Doctrine\ORM\EntityNotFoundException: "Entity was not found." at
/dev/vendor/doctrine/orm/lib/Doctrine/ORM/Proxy/ProxyFactory.php line
177 {"exception":"[object]
(Doctrine\ORM\EntityNotFoundException(code: 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,符合预期。
有什么想法吗?
也许很明显,但是您是否检查过您的查询 return 值?关于您的实体,确保没有错误 (doctrine orm:validate-schema
)。
顺便说一下,代理目录有一些问题 - 通常在 OS X (Doctrine 2. Auto generating proxies)
我为此苦苦挣扎了几个小时,然后找到了两个解决方案:
- 在 BasicEntityPersister 的第 758 行应用学说解决方法
变化:
return $entities ? $entities[0] : null;
至:
return $entities ? $entities[0] : $entity;
重新生成 symfony bootstrap 缓存:
composer run-script post-update-cmd --no-dev
- 对于 2 我也将 mysql 升级到 5.6
就我而言,我非常关注不正确的注释(正如大多数回复所暗示的那样),而没有看到一个简单的问题。我刚刚导入了损坏的数据库转储。
因此,如果有人再次遇到同样的问题:
(1) 使用 orm:schema-tool:validate 不仅可以检查注释是否正确,还可以检查您的数据库是否同步。
(2) 始终使用校验和检查下载的数据库!
我在 Symfony 和 Doctrine 问题上遇到了一个奇怪的行为,实际上发现这可能与 this 错误有关。
request.CRITICAL: Uncaught PHP Exception Doctrine\ORM\EntityNotFoundException: "Entity was not found." at /dev/vendor/doctrine/orm/lib/Doctrine/ORM/Proxy/ProxyFactory.php line 177 {"exception":"[object] (Doctrine\ORM\EntityNotFoundException(code: 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,符合预期。
有什么想法吗?
也许很明显,但是您是否检查过您的查询 return 值?关于您的实体,确保没有错误 (doctrine orm:validate-schema
)。
顺便说一下,代理目录有一些问题 - 通常在 OS X (Doctrine 2. Auto generating proxies)
我为此苦苦挣扎了几个小时,然后找到了两个解决方案:
- 在 BasicEntityPersister 的第 758 行应用学说解决方法
变化:
return $entities ? $entities[0] : null;
至:
return $entities ? $entities[0] : $entity;
重新生成 symfony bootstrap 缓存:
composer run-script post-update-cmd --no-dev
- 对于 2 我也将 mysql 升级到 5.6
就我而言,我非常关注不正确的注释(正如大多数回复所暗示的那样),而没有看到一个简单的问题。我刚刚导入了损坏的数据库转储。
因此,如果有人再次遇到同样的问题:
(1) 使用 orm:schema-tool:validate 不仅可以检查注释是否正确,还可以检查您的数据库是否同步。
(2) 始终使用校验和检查下载的数据库!