Php 奇怪的条令实体未发现异常

Php 奇怪的条令实体未发现异常,php,symfony,orm,doctrine-orm,Php,Symfony,Orm,Doctrine Orm,我在Symfony和条令问题上遇到了一个奇怪的行为,实际上发现这可能与bug有关 request.CRITICAL:未捕获的PHP异常 条令\ORM\EntityNotFoundException:“未找到实体。”位于 /dev/vendor/doctrine/orm/lib/doctrine/orm/Proxy/ProxyFactory.php行 177{“例外”:“[对象] (条令\ORM\EntityNotFoundException(代码:0) 要提供一些代码示例,请执行以下操作: $n

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

request.CRITICAL:未捕获的PHP异常 条令\ORM\EntityNotFoundException:“未找到实体。”位于 /dev/vendor/doctrine/orm/lib/doctrine/orm/Proxy/ProxyFactory.php行 177{“例外”:“[对象] (条令\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,如预期的那样


这里有什么想法吗?

可能很明显,但您是否检查了您的查询是否返回了值?关于您的实体,请制作无错误的舒尔(
orm:validate schema
)。

顺便说一句,我在OS X上的代理目录(normaly)上遇到了很多问题()

我花了几个小时来解决这个问题,然后我找到了两个解决方案:

  • 在BasicEntityPersister的第758行应用条令解决方法
  • 更改:

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

  • 重新生成symfony引导缓存:

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

  • 在我的例子中,我的注意力集中在错误的注释上(正如大多数回答所表明的那样),没有看到一个简单的问题

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

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


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

    首先,在第一个示例中使用$nextItems作为变量,然后在第二个示例中使用$nextItems作为数组。请这样使用:$nextItems[],这是因为'findNextItemByCatId()'返回数组。是的,它确实返回值,特别是预期值。
    composer run-script post-update-cmd --no-dev