Doctrine 存储库返回空结果集
Posted
技术标签:
【中文标题】Doctrine 存储库返回空结果集【英文标题】:Doctrine repository returns empty resultset 【发布时间】:2012-03-11 10:05:49 【问题描述】:Doctrine 存储库存在真正问题。
即使使用 findAll() 方法,它也会返回一个空结果集。表中有条目,生成的 SQL 运行良好。其他存储库工作正常。没有错误消息/异常 - 只是一个空的结果集。
扯掉我的头发。
使用 Doctrine 2.1.6
有人知道从哪里开始寻找吗?
实体定义在http://pastie.org/private/o4lbdxsnjq1vogkeburbaq3d
【问题讨论】:
为什么投反对票?这不是一个合理的问题吗? 我们应该猜出什么是错的吗?尝试删除 repositoryClass 属性并使用默认存储库进行检查。 meze - 我已经尝试过了,它没有任何区别。这就是我遇到问题的原因,Doctrine 没有抛出任何错误/异常,并且生成的 SQL 有效。它不透明,我询问是否其他人有类似的问题并可以提供帮助。 那个可以缓存,学说用不同的数据库... 【参考方案1】:第一
在您声明自己的存储库之前,实体会使用 EntityRepository。如果您声明自己的 Repository,您首先可以开始检查是否从原始 EntityRepository 扩展您的存储库。
我找到了this blog post,当时对我很有帮助:)
您可能还想查看Doctrine API。
第二
我知道findAll()
方法在您检查并创建一个异常之前不会抛出任何异常。
例如:
$exm = $this->em->getRepository('myRepo')->findAll();
if(!$exm)
throw new \Doctrine\ORM\NoResultException;
P.S:我可能是错的。然而,我多年来一直使用这种风格,我很满意。如果我错了,我很乐意学习最好的方法。所以请纠正我!
【讨论】:
两个链接都失效了。我有同样的问题,我的存储库扩展了 ServiceEntityRepository。 Symfony 5.1.5,Doctrine 2.1.2以上是关于Doctrine 存储库返回空结果集的主要内容,如果未能解决你的问题,请参考以下文章