Twig模板忽略for循环中的值

时间:2013-01-20 15:29:31

标签: php for-loop twig

我想忽略数组中的值,因此这里只显示四个子节点中的三个。 page.root中有四个项目,但我只想显示三个项目。

<nav role="navigation">
    <ul>
      {% for child in page.root %}
        <li>
          <a href="{{ child.url }}">{{ child.title }}</a>
        </li>
      {% endfor %}
    </ul>
</nav>

查看文档,我找不到限制for循环的方法。

感谢您的帮助!

============

是的,我正在运行使用Twig的Stacey应用程序。对不起,我应该更具体。

有了stacey,slice是一种方法,所以这解决了我的问题:

<nav role="navigation">
    <ul>
      {% for child in slice (page.root, 0,3) %}
        <li>
          <a href="{{ child.url }}">{{ child.title }}</a>
        </li>
      {% endfor %}
    </ul>
</nav>

我发现here。这正确地只输出page.root中的三个孩子。

2 个答案:

答案 0 :(得分:0)

  

“模板系统旨在表达演示而非节目   逻辑。“ - Django文档

所以,你可以使用if statment,

{% for child in page.root %}
  {% if child.title != 'any title' %}
  <li>
    <a href="{{ child.url }}">{{ child.title }}</a>
  </li>
  {% endif %}
{% endfor %}

For the more information

答案 1 :(得分:0)

“仅打印前n项”的常见解决方案是slice过滤器:

{% for child in page.root|slice(0, 3) %}
    {# params are start and length, so that means the first 3 items #}
{% endfor %}