【问题标题】:Show data in a table using twig使用 twig 在表格中显示数据
【发布时间】:2015-07-02 06:58:15
【问题描述】:

我有个问题,我的代码是这样的:

{% for order in aFilteredIgDetails %}
    {% if order.availability == 0 %}
        <tr>
             <td colspan="3" style="background: #FF0000;color:#ffffff">Available</td>
         </tr>
        <tr>
            <td>
                {{ order.gift_id }}
            </td>
            <td>
                {{ order.idm }}
            </td>
            <td>
                {{ order.email }}
            </td>
        </tr>
    {% else %}
        <tr>
            <td colspan="3" style="background: #0000ff;color:#ffffff">Unavailable</td>
        </tr>
        <tr>
            <td>
                {{ order.gift_id }}
            </td>
            <td>
                {{ order.idm }}
            </td>
            <td>
                {{ order.email }}
            </td>
        </tr>
    {% endif %}
{% endfor %}

一切正常,问题是如果我有多个 order.availability == 0 总是对于我在顶部的每一行 &lt;tr&gt;background : #FF0000; 你能帮帮我吗?提前谢谢。有人有想法吗?请帮帮我!!!!!!!

【问题讨论】:

  • 我不确定你在问什么。你想达到什么目的?每行不同的背景?
  • 我只想显示一个背景:#FF0000,即使有几行可用性== 0,例如现在如果我有3个可用性== 0的订单,所以我得到每个&lt;tr&gt;&lt;td colspan="3" style="background: #FF0000;color:#ffffff"&gt;Available&lt;/td&gt;&lt;/tr&gt; 但我只想得到一个这个 tr

标签: symfony twig symfony-forms symfony-2.1 twig-extension


【解决方案1】:

我找到了解决办法:

{% if aFilteredIgDetails %}
                {% for order in aFilteredIgDetails %}
                    {% if order.availability == 0 %}
                    {% set counter_unavail = ( counter_unavail | default(0) ) + 1 %}
                    {% if counter_unavail == 1 %}
                    <tr>
                         <td colspan="3" style="background: #FF0000;color:#ffffff">Unaivailable</td>
                     </tr>
                    {% endif %}
                    <tr>
                        <td>
                            {{ order.gift_id }}
                        </td>
                        <td>
                            {{ order.idm }}
                        </td>
                        <td>
                            {{ order.email }}
                        </td>
                    </tr>
                    {% elseif order.availability == 1 %}
                        {% set counter_avail = ( counter_avail | default(0) ) + 1 %}
                        {% if counter_avail == 1 %}
                        <tr>
                            <td colspan="3" style="background: #0000ff;color:#ffffff">Available</td>
                        </tr>
                        {% endif %}
                        <tr>
                            <td>
                                {{ order.gift_id }}
                            </td>
                            <td>
                                {{ order.idm }}
                            </td>
                            <td>
                                {{ order.email }}
                            </td>
                        </tr>
                    {% endif %}
                {% endfor %}
            {% else %}
                <td colspan="3">---</td>
            {% endif %}

【讨论】:

    【解决方案2】:

    您可以使用变量来检测它是否是可用性为 0 的第一个订单:

    {% set first = true %}
    {% for order in aFilteredIgDetails %}
        {% if order.availability == 0 and first == true %}
            <tr>
              <td colspan="3" style="background: #FF0000;color:#ffffff">Available</td>
            </tr>
        {% set first = false %}
        {% else %}
            <tr>
                <td colspan="3" style="background: #0000ff;color:#ffffff">Unavailable</td>
            </tr>
        {% endif %}
        <tr>
            <td>
                {{ order.gift_id }}
            </td>
            <td>
                {{ order.idm }}
            </td>
            <td>
                {{ order.email }}
            </td>
        </tr>
    {% endfor %}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多