通过这个应用程序,我正在构建我希望用户能够查看前几年的记录。因此,如果该用户的记录可以追溯到2005年,那么我希望能够显示自那时起的年份列表,包括那一年,例如:
年份清单:2012 | 2011 | 2010 | 2009 | 2008 | 2007 | 2006 | 2005
我已经找到了SQL来从数据库中检索最旧的记录,如下所示:
// Retrieve Oldest Record
$minimumyear = $dm->createQuery('
SELECT min(msu.endDate) as msuMin
FROM InstructorBundle:MapSubscriptions msu
LEFT JOIN InstructorBundle:MapContacts mc WHERE msu.contact = mc.id
LEFT JOIN InstructorBundle:MapFamilies mf WHERE mc.family = mf.id
WHERE mf.branch = :centre'
)->setParameter('centre', $centreid);
$minyear = $minimumyear->getResult();
我遇到的问题是,现在我已经度过了最悠久的一年,我不知道如何使用Twig来显示我需要的列表。我已经考虑过延长Twig以允许这个,但是我不想暂时离开那条大道只是因为在Twig中有一个函数允许我这样做。
如何使用Twig显示我需要的列表?
答案 0 :(得分:18)
只需使用twig date function即可使用"now"
获取当前年份,然后使用for loop从最小年份循环到当前年份。
{% set minimumYear = 2010 %}
List of years: {{ minimumYear }}
{% for year in (minimumYear+1).."now"|date("Y") %}
| {{ year }}
{% endfor %}
输出:
年份清单:2010 | 2011 | 2012 | 2013
..或者先获得当前年份
{% set minimumYear = 2010 %}
{% set currentYear = "now"|date("Y") %}
List of years: {{ currentYear }}
{% for year in (currentYear-1)..minimumYear %}
| {{ year }}
{% endfor %}
输出:
年份清单:2013 | 2012 | 2011 | 2010