Twig根据名称计算项目数

时间:2017-05-09 17:54:12

标签: symfony twig

我有一张与ManyToOne住所关系的住宿表 - >要求。我想计算每个住所的申请数量。我已经开始展示我的2个住所,但我想计算每个住所的申请数量。这是我的代码。

{% set countD = [] %}
{% for key in demandes|keys %}
  {% if demandes[key].residence.name not in countD %}
    Résidence : <em style="color:#b94a83;">{{ demandes[key].residence.name }}</em>
    <br/>
    {% set countD = countD|merge([demandes[key].residence.name]) %}
  {% endif %}
{% endfor %}

谢谢。

1 个答案:

答案 0 :(得分:0)

这种类型的逻辑应该在你的控制器中实现,否则可以使用它:

{% set residences = [] %}
{% set demandesCount = {} %}
{% for key in demandes|keys %}
    {% set name =  demandes[key].residence.name %}
    {% set demandesCount = demandesCount|merge({ (name) : demandesCount[name]|default(0) + 1 }) %}
    {% set residences = residences|merge({(name) : name}) %}
{% endfor %}

{% for name in residences %}
    Résidence : <em style="color:#b94a83;">{{ name }}</em> ({{ demandesCount[name] }})
    <br/>
{% endfor %}

demandesCount 会有类似的内容

enter image description here

然后在需要时使用此数组。

如果您需要在打印住所名称时显示需求量,则需要进行一些更改:

{{1}}

由于模板的复杂性,建议在控制器中执行此类逻辑,但有时需要;)