我在尝试获取Symfony2中与Doctrine相关的实体之间应该存在的一些信息时遇到了问题。
假设我有一个名为“Publisher”的实体,其中有许多“杂志”,其中有很多“章节”,其中有很多“页面”,我想从一个“Publisher”对象获取,获取Pages的总量他们所有的杂志,通过章节,都有。
Whil试图统计杂志,直接相关,我没有问题(我使用Twig作为模板)。 在控制器中,我检索列表:
$entities = $em->getRepository('Bundle:Publisher')->findAll();
在视图中我可以渲染:
{{ entity.magazines.count }}
这给了我与该出版商相关的杂志。但是,当我尝试执行以下操作时:
{{ entity.magazines.chapters.count }}
(假设“章节”是与ManyToOne杂志相关的另一个实体),它会抛出错误。 我知道我在这里遗漏了一些东西,但我无法弄清楚它是什么。有人可以帮我或提示如何做到这一点吗?
答案 0 :(得分:4)
你不能这样做。你应该使用DQL。
现在访问entity.magazines
后,您会收到一个杂志实体集合,您应该循环此集合以访问chapters
集合中每个项目的entity.magazines
请参阅Using Aggregate Functions
here