7

通过我正在构建的这个应用程序,我希望用户能够查看前几年的记录。因此,如果该用户的记录可以追溯到 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 显示我需要的列表?

4

1 回答 1

20

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

{% 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

于 2013-09-12T10:04:31.240 回答