2012-03-11 117 views
0

存在Doctrine存储库的实际问题。Doctrine知识库返回空结果集

即使使用findAll()方法,它也会返回一个空结果集。表中有条目,生成的SQL完美工作。其他存储库工作正常。没有错误消息/异常 - 只是一个空的结果集。

把我的头发撕掉。

使用Doctrine 2.1.6

人有哪里开始寻找任何指针?

实体定义为http://pastie.org/private/o4lbdxsnjq1vogkeburbaq3d

+0

为什么downvote?这不是一个合理的问题吗? – Matt 2012-03-11 14:50:17

+0

我们应该猜测什么是错的?尝试删除repositoryClass属性并使用默认存储库进行检查。 – meze 2012-03-11 16:01:13

+0

meze - 我试过了,它没有区别。这就是我遇到问题的原因,Doctrine不会抛出任何错误/异常,并且生成的SQL可以工作。这是不透明的,如果其他人遇到类似问题并且可以提供帮助,我会问。 – Matt 2012-03-11 16:08:37

回答

1

首先

实体使用EntityRepository直到你声明自己的仓库。如果你声明你自己的仓库,你首先可以开始检查你是否从原始的EntityRepository扩展你的仓库。

我发现this blog post,对我非常有帮助在那些日子:)

您可能还需要检查Doctrine API

我知道findAll()方法不抛出任何异常,直到您检查并创建一个。

例如:

$exm = $this->em->getRepository('myRepo')->findAll(); 
if(!$exm) 
    throw new \Doctrine\ORM\NoResultException; 

P.S:我可能是错的。不过,我已经使用了这种风格多年,我对此感到满意。如果我错了,我会很乐意学习最好的方法。所以请纠正我!