Rei*_*ghe 1 group-by symfony twig
我有一张名为'匹配'的足球比赛桌.在该表中有一个字段'kickoff',它是匹配开始时的datetime-column.使用以下代码,我可以获得表格中的所有匹配项.
$matches = $em->createQueryBuilder()
->select('m')
->from('FootballWcBundle:Matches', 'm')
->addOrderBy('m.kickoff', 'ASC')
->getQuery()
->getResult();
return $this->render('FootballWcBundle:Page:matches.html.twig', array(
'matches' => $matches
));
Run Code Online (Sandbox Code Playgroud)
现在我想显示按日期分组的屏幕上的匹配项.像这样:
二〇一四年十二月十二日
MATCH1
MATCH2
14-12-2014
MATCH3
match4
match5
有没有办法让Twig知道如何通过启动列进行分组,还是有另一种方法可以做到这一点?
你可以这样做,如下所示:
{% set date = null %}
{% for match in matches %}
{% if date != match.kickoff %}
{% set date = match.kickoff %}
<h3>{{ date }}</h3>
{% endif %}
<p>{{ match.name }}</p>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
这样,你将第一个日期设置为null,然后迭代所有匹配并写一个带有名称的'p'标签(我认为匹配有一个名称来做例子),当匹配日期改变时,你用匹配日期写一个'h3'标签.由于在第一次迭代中将日期设置为null,因此第一个日期将为write.
| 归档时间: |
|
| 查看次数: |
2058 次 |
| 最近记录: |