我有以下twig循环,它会生成一些数据:
{% for reservationDate, rooms in data.pricingTable %}
<tr>
<td>
{% for room in rooms %}
<tr>
<td class="date"><p>{{ reservationDate }}</p></td>
<td class="roomType">
<p>
{{ room.description }} ({{ room.bathroomDescription }} {{ 'ROOMDETAILSBATHROOM'|trans }})
</p>
</td>
<td class="people">
<p>
{{ room.noPeople }}
</p>
</td>
<td class="pricePerPerson">
<p>
{{ room.pricePerPerson }}<span>{{ room.currency }}</span>
</p>
</td>
<td class="total">
<p>
{{ room.total }}<span>{{ room.currency }}</span>
</p>
</td>
</tr>
{% endfor %}
</td>
</tr>
{% endfor %}
通过这样做:
<td class="date"><p>{{ reservationDate }}</p></td>
基于多少次重复多次:
{{ room.description }} ({{ room.bathroomDescription }} {{ 'ROOMDETAILSBATHROOM'|trans }})
将会生成。
我曾尝试使用&#34; rowspan&#34;但暗示使用动态值插入,所以JS解决方案我并不是真的想要。
有没有办法只有一个:
<td class="date"><p>{{ reservationDate }}</p></td>
无论多少:
{{ room.description }} ({{ room.bathroomDescription }} {{ 'ROOMDETAILSBATHROOM'|trans }})
这似乎有效,但它为每组结果产生一个空行:
{% for room in rooms %}
<tr>
<td class="date">
{% if loop.first %}
<p>{{ reservationDate }}</p>
{% endif %}
</td>
<td class="roomType">
<p>
{{ room.description }} ({{ room.bathroomDescription }} {{ 'ROOMDETAILSBATHROOM'|trans }})
</p>
</td>
<td class="people">
<p>
{{ room.noPeople }}
</p>
</td>
<td class="pricePerPerson">
<p>
{{ room.pricePerPerson }}<span>{{ room.currency }}</span>
</p>
</td>
<td class="total">
<p>
{{ room.total }}<span>{{ room.currency }}</span>
</p>
</td>
</tr>
{% endfor %}
是从循环中产生的吗?
谢谢
答案 0 :(得分:4)
你可以使用你会发现here的循环变量来创建这样的东西:
{% for room in rooms %}
...
{% if loop.first %}
<td class="date"><p>{{ reservationDate }}</p></td>
{% endif %}
...
{% endfor %}
使用loop.length
,您甚至可以使用变量作为rowspan
。
答案 1 :(得分:0)
您可以在这段代码中使用jquery:
$('.date').not(':last').remove();
这将自动删除所有重复项
喜欢这个jsfiddle: http://jsfiddle.net/eyrexwb6/