我正在尝试遍历会议对象的数组,每个会议在相同的日期需要在其自己的div中显示,如果日期更改,那么日期会议需要在下一个div中,所以我正在寻找的输出是像这样的东西
<div class="row">
<h2 class="date-heading">September 24</h2>
<div class="col4">Meeting 1 </div>
<div class="col4">Meeting 2 </div>
<div class="col4">Meeting 3 </div>
<div class="col4">Meeting 4 </div>
<div class="col4">Meeting 5 </div>
</div>
<div class="row">
<h2 class="date-heading">September 25</h2>
<div class="col4">Meeting 1 </div>
<div class="col4">Meeting 2 </div>
<div class="col4">Meeting 3 </div>
<div class="col4">Meeting 4 </div>
<div class="col4">Meeting 5 </div>
</div>
<div class="row">
<h2 class="date-heading">September 26</h2>
<div class="col4">Meeting 1 </div>
<div class="col4">Meeting 2 </div>
<div class="col4">Meeting 3 </div>
<div class="col4">Meeting 4 </div>
<div class="col4">Meeting 5 </div>
</div>
现在在循环中我可以访问名为request.isNewDate
的每个对象的参数,只要当前循环的日期与前一个循环不同,就会设置为yes
,我想我可以用它来实现我需要的东西,但我在逻辑上遇到了问题。
这就是我的代码在我循环的地方看起来如何,如果request.isNewDate
是yes
,我怎么能摆脱这个循环,然后在新的div中开始休息。
任何帮助将不胜感激。
<div class="row">
{% for request in pagination %}
<div class="col4">
<h5 class="">{{ request.getGuest.getFirstName }}</h5>
<h6 class="text-transform-none">{{ request.getGuest.getCollege }}<br>
{{ request.getGuest.getDegree }}<br>
({{ request.getGuest.getCourse }})
</h6>
</div>
</div>
答案 0 :(得分:0)
在控制器中执行逻辑并将数据分别传递给Twig。
你不希望这种逻辑埋在模板中。它将成为未来的维护问题,并且这样做会导致混乱,难以阅读的模板。
答案 1 :(得分:0)
试试这段剪辑代码:
{% for request in pagination %}
{#
If is a new date, open a new div TAG and dump the data.
If the first element of the collection do not have this info
consider to use loop.index0 as OR operation.
#}
{% if request.isNewDate %}
<div class="row">
{# print and format the date #}
<h2 class="date-heading">{{ request.date }}</h2>
{% endif %}
{# Render data of an element, consider to wrap this data in a single twig and incude #}
<div class="col4">
<h5 class="">{{ request.getGuest.getFirstName }}</h5>
<h6 class="text-transform-none">{{ request.getGuest.getCollege }}<br>
{{ request.getGuest.getDegree }}<br>
({{ request.getGuest.getCourse }})
</h6>
</div>
{# remember to close the div #}
{% if request.isNewDate %}
</div>
{% endif %}
{% endfor %}
希望这个帮助