使用Doctrine2 QueryBuilder(groupBy,orderBy,将STR转换为INT ...)的事件议程

时间:2019-02-12 10:35:01

标签: doctrine repository query-builder symfony-3.4

我想显示一个活动议程(实体议程),它在db中具有以下字段:

  • 年份(例如:“ 2018-2019”),
  • 月(例如:2018年9月至6月),
  • 事件名称,
  • 城市,
  • 位置,
  • 事件日期(例如:10月星期一10月11日:15h-14h15 – 11月12日星期五:10h-14h15)。

树枝视图应显示按年份(DESC),月份(ASC),事件日期(ASC !!)排序的所有事件。 当然,年份和月份仅显示一次(作为标题)。 组织起来真是一团糟!

最初的想法是首先通过将最后两个字符转换为整数(对于STR'2018-2019'为19)排序年份,然后将其转换为将事件按年分组,然后按月分组。

目前,我尝试编写的树枝循环(事件分成月份,然后年份)显示一团糟,因为我很难转换和排序所有这些信息!

我想通过特定的 QueryBuilder 方法使用存储库。 由于我正在寻找解决方案几天,所以对我来说这可能有点太困难了……一个人。 获得正确方法的建议将不胜感激!!非常感谢! (对不起,我的英语)

  • 文件议程.html.twig(不带html):
    {% for saison in agenda %}
        Saison {{ saison.saison }}
        {% for mois in agenda %}
            {{ mois.mois|upper }}
            {{ mois.spectacle|upper ~ " > " ~ mois.ville|upper }}
            {{ mois.lieu }}
            {{ mois.dates }}
        {% endfor %}
    {% endfor %} 
  • 文件xxController.php:

    public function agendaAction()
    {
        $repo = $this->getDoctrine()->getRepository('AppBundle:Agenda');
        $agenda = $repo->triSaisonAgenda(); // Function in Repository, which failed
        return $this->render('agenda.html.twig', array('agenda' => $agenda));
    } 

0 个答案:

没有答案