如何使用Twig和Symfony2显示特定年份以来的年份列表

mic*_*jnr 7 symfony twig

有了这个应用程序我正在构建我希望用户能够查看前几年的记录.因此,如果该用户的记录可以追溯到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();
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,现在我已经度过了最古老的一年,我不知道如何使用Twig来显示我需要的列表.我已经考虑过延长Twig以允许这个,但是我不想暂时离开那条大道只是因为在Twig中有一个函数允许我这样做.

如何使用Twig显示我需要的列表?

Nic*_*ich 18

只需使用twig的日期函数来获取当前年份,"now"然后使用for循环从最小年份到当前循环.

{% set minimumYear = 2010 %}

List of years: {{ minimumYear }}
{% for year in (minimumYear+1).."now"|date("Y") %}
    | {{ year }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

输出:

年份清单:2010年| 2011 | 2012 | 2013

..或者先获得当年

{% set minimumYear = 2010 %}
{% set currentYear = "now"|date("Y") %}   

List of years: {{ currentYear }}
{% for year in (currentYear-1)..minimumYear %}
   | {{ year }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

输出:

年份清单:2013 | 2012 | 2011 | 2010