【问题标题】:Doctrine repository returns empty resultsetDoctrine 存储库返回空结果集
【发布时间】:2012-03-11 10:05:49
【问题描述】:

Doctrine 存储库存在真正问题。

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

扯掉我的头发。

使用 Doctrine 2.1.6

有人知道从哪里开始寻找吗?

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

【问题讨论】:

  • 为什么投反对票?这不是一个合理的问题吗?
  • 我们应该猜出什么是错的吗?尝试删除 repositoryClass 属性并使用默认存储库进行检查。
  • meze - 我已经尝试过了,它没有任何区别。这就是我遇到问题的原因,Doctrine 没有抛出任何错误/异常,并且生成的 SQL 有效。它不透明,我询问是否其他人有类似的问题并可以提供帮助。
  • 那个可以缓存,学说用不同的数据库...

标签: php orm doctrine


【解决方案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
猜你喜欢
  • 1970-01-01
  • 2015-06-03
  • 2014-10-15
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-22
相关资源
最近更新 更多