我尝试使用Twig“ loop.length”在每个菜单项上实现一个菜单子项计数器。根据树枝文档here,如果我在循环前声明变量,则可以访问该变量:
<div id="menu">
<div class="list-group">
{% if menuItems %}
{% set items = menuItems %}
{% for item in items %}
<a href="#">{{ item.title }}</span>{{ subitem_counter }}</span></a>
{% if item.items %}
<div class="list-subgroup">
{% set subitem_counter = "" %}
{% for subitem in item.items %}
{% set subitem_counter = loop.length %}
<a href="#">{{ subitem.title }}</a>
{% endfor %}
</div>
{% endfor %}
{% endif %}
</div>
</div>
问题是,在第一个菜单项上我以某种方式没有获得关于“ subitem_counter”的任何数据,在第二个菜单项上我从第一个菜单项获得了计数数据,在第三个菜单项上我从第二个菜单项获得了计数数据等。
答案 0 :(得分:0)
使用length
twig filter:
<div id="menu">
<div class="list-group">
{% if menuItems %}
{% set items = menuItems %}
{% for item in items %}
<a href="#">{{ item.title }}</span>{{ item.items|length }}</span></a>
{% if item.items %}
<div class="list-subgroup">
{% for subitem in item.items %}
<a href="#">{{ subitem.title }}</a>
{% endfor %}
</div>
{% endfor %}
{% endif %}
</div>
</div>
在为变量赋值之前,不能使用变量的值。