我有一个带有关系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 %}
谢谢。
发布于 2017-05-09 21:47:54
这种类型的逻辑应该在控制器中实现,否则可以使用以下方法:
{% 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 }) %}
{% if name not in residences %}
Résidence : <em style="color:#b94a83;">{{ name }}</em>
<br/>
{% set residences = residences|merge([(name)]) %}
{% endif %}
{% endfor %}
demandesCount将会有这样的东西
然后在需要的时候使用这个数组。
如果您需要在打印住宅名称时显示需求量,则需要进行一些更改:
{% 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 %}
由于模板的复杂性,建议在控制器中做这种类型的逻辑,但有时是需要的;
https://stackoverflow.com/questions/43876742
复制相似问题