奇怪的教义实体未发现异常



我在Symfony和Doctrine问题上遇到了一个奇怪的行为,实际上发现可能与这个错误有关。

请求。严重:未捕获的 PHP 异常 Doctrine\ORM\EntityNotFoundException: "Entity is not found." at /dev/vendor/doctrine/orm/lib/Doctrine/ORM/Proxy/ProxyFactory.php line 177 {"异常":"[对象] (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,如预期的那样。

这里有什么想法吗?

我为此挣扎了几个小时,然后我找到了两个解决方案:

  1. 应用原则解决方法,在 BasicEntityPersister 的第 758 行

改变:

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

自:

    return $entities ? $entities[0] : $entity;
  1. 重新生成 Symfony 引导缓存:

    composer run-script post-update-cmd --no-dev
    
    • 对于 2,我还将 MySQL 升级到 5.6

也许很明显,但是您是否检查过查询是否返回值?关于您的实体,请制作没有错误的舒尔(doctrine orm:validate-schema)。
顺便说一句,我在代理目录方面遇到了一些问题 - 在 OS X 上很正常(原则 2。自动生成代理)

就我而言,我非常关注不正确的注释(正如大多数回复所暗示的那样),并且没有看到一个简单的问题。我刚刚导入了一个损坏的数据库转储。

因此,如果有人再次遇到同样的问题:

(1) 使用 orm:schema-tool:validate 不仅可以检查注释是否正确,还可以检查数据库是否同步。

(2) 始终使用校验和检查下载的数据库!

相关内容

  • 没有找到相关文章

最新更新