【问题标题】:Does Twig have equivalent 'append'?Twig 是否有等效的“附加”?
【发布时间】:2018-05-23 18:06:11
【问题描述】:
{% block page %}
   <ul class="gallery">
     {% set foo = 0 %}
     {% for products in prodArr %}
       {% if foo % 4 == 0 %}
         <ul class="slides">
           <li>Product</li>
         </ul>
       {% else %}
         <li>Another Product<li> // this
       {% endif %}
     {% set foo = foo + 1 %}
     {% endfor %}
   </ul>
{% endblock %}

在其他情况下,我希望 li 将附加到 ul 与类幻灯片。这可能吗?

我希望我的 HTML 看起来像这样:

<ul class="gallery">
  <ul class="slides">
    <li></li>
    <li></li>
    <li></li>
    <li></li>
  </ul>
  <ul class="slides">
    <li></li>
    <li></li>
    <li></li>
    <li></li>
  </ul>
</ul>

【问题讨论】:

    标签: php html twig template-engine


    【解决方案1】:

    Twig 有 embedinclude,但在你的情况下,你可以像这样重构你的代码:

    // UPDATED:
    <ul class="gallery">
        {% for chunk in products|batch(4) %}
            <ul class="slides">
                {% for product in chunk %}
                    <li>{{ product.title }}</li> // assuming you have title property
                {% endfor %}
            </ul>
        {% endfor %}
    </ul>
    

    附:不幸的是,我无法对其进行测试,但您会了解总体思路;)

    【讨论】:

    • 谢谢。但不完全是。我编辑了我的问题,添加了示例。请看那个
    • @YURII 请检查更新版本是否有效并告诉我
    • 我试过了,但它不起作用,正如所愿)它用 1 li 创建每个
        。在我看来它必须有 4 li (dynamicly) ,然后创建新的
      • 再次更新
      • 您能解释一下您的解决方案吗?为什么你用 2 表示 in 和变量块??
      【解决方案2】:

      是的,这是可能的。但在这种情况下,您必须像这样更正:

      {% block page %}
          <ul class="gallery">
            {% set foo = 0 %}
            {% for products in prodArr %}
                {% if foo % 4 == 0 %}
                    **<ul class="slides">**
                {% endif %}
      
                <li>Product</li>
      
                {% if foo % 4 == 3 or foo == (prodArr|length - 1) %}
                    **</ul>**
                {% endif %}
      
           {% set foo = foo + 1 %}
           {% endfor %}
          </ul>
          {% endblock %}
      

      【讨论】:

      • 您只需将
        • 好吧,我明白了。我已经编辑了我的答案。让我知道它是否有效
        猜你喜欢
        • 1970-01-01
        • 2021-01-03
        • 2016-10-26
        • 2023-03-04
        • 2012-02-26
        • 2010-09-22
        • 2013-01-26
        • 2019-11-02
        • 2013-11-12
        相关资源
        最近更新 更多