假设我有一个这样的for循环:
{% for elem in arrMenu %}
<div class="topmenu-button">
<a href="{{ elem.url }}">{{ elem.name }}</a>
</div>
{% endfor %}
在那种形式,它会呈现如下:
<div class="topmenu-button"><a href="url">name</a></div>
<div class="topmenu-button"><a href="url">name</a></div>
<div class="topmenu-button"><a href="url">name</a></div>
<div class="topmenu-button"><a href="url">name</a></div>
twig如何帮助我添加div的第一个和最后一个类,以便我得到如下结果:
<div class="topmenu-button first"><a href="url">name</a></div>
<div class="topmenu-button"><a href="url">name</a></div>
<div class="topmenu-button"><a href="url">name</a></div>
<div class="topmenu-button last"><a href="url">name</a></div>
4 回答
您可以根据需要使用"special variables"
loop.first
和loop.last
.LINK
编辑:根据您对“一个案例”的关注程度,您可能需要这样的解决方案 .
由于循环不能同时
first
和last
,我宁愿不使用elseif
并写(DRY - 如果你将来必须更改topmenu-button
会怎么样?):或者更简洁:
Edit :这样你就可以在
class
属性中得到一些额外的空格(这是非常好的顺便说一下) . Edit2 :这不会处理1元素数组(第一个=最后一个)如果要管理标签的类属性,则三元条件会更好 .
我在Drupal 8视图模板中使用它 . 感谢'elseif',如果你只有1个项目,那么第一个项目永远不会得到'last'类: