Symfony2 / Doctrine计数与相关有关

时间:2014-08-06 01:24:34

标签: php symfony doctrine

我不确定这是否可行:

我在几个实体之间有很深的关系,我不知道如何有效地计算相关实体,以显示每个实体的累计总数。

  • 我有一本“杂志”。
  • “杂志”有几个“问题”。
  • “问题”有几个“章节”。
  • “章节”有几个“页面”。
  • 依旧......

我希望显示如下内容:

Magazine A: 6 issues, 12 chapters, 24 pages
Magazine B: 12 issues, 20 chapters, 51 pages

因此,在检索“杂志”时:

$entities = $em->getRepository('MyBundle:Magazine')->findBy(array(),
    array('name' => 'ASC'));

在模板中,我可以这样做:

<td>{{ entity.issues.count }}</td>

显示与“杂志”相关的“问题”数量。

我的问题是,现在我想要这些“问题”子集的累计“章节”数量,依此类推。类似的东西:

<td class="counter">{{ entity.issues.chapters.count }}</td>
<td class="counter">{{ entity.issues.chapters.pages.count }}</td>

显然这不起作用,我无法想办法做到这一点。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

尝试

{{ entity.issues|length }}

答案 1 :(得分:0)

{{ entity.issues.chapters.pages.count }}无法正常工作,因为entity.issues是一个数组集合。你可以得到这样一个问题的章节:

{{ entity.issues[INDEX_KEY].chapters.pages.count }}

{% for issue in entity.issues %}
    {{ issue.chapters.count }}
{% endfor %}