2011-08-25 162 views
9

在Symfony2项目中,我有一个控制器,用于从数据库中检索许多事件。这些事件具有像start_time,stop_time,类型等属性。在Symfony2中对模板进行排序:使用Twig按属性对对象集合进行排序

在我看来,我想在一个表中显示这些事件,按start_time排序。我使用Twig来模板。

我可以在将其传递给树枝模板之前在我的控制器中进行预先排序,但是imho控制器不应该在意该视图要排序。例如,也许我创建的另一个模板需要按类型排序。

现在,有没有一种方法可以将事件对象的集合原样添加到Twig模板中,然后让它在现场为我排序? 也许用'|排序“过滤器,但后来像'|财产(start_time)“过滤器,如果你知道我的意思:-)

任何意见,欢迎提前致谢!

Dieter

回答

2

futurecat是完全正确的:没有办法做到这一点即可。即使他的回答已被接受,我也加入完整性:

您可以使用snilius/twig-sort-by-field树枝扩展,它将提供您需要的过滤器。

安装它使用composer require snilius/twig-sort-by-field,并享受其sortbyfield过滤:

{% for item in base | sortbyfield('name') %} 
    {{ item.name }} 
{% endfor %} 
+1

我不能再尝试自己了,但这确实看起来正是我当时所需要的。将此标记为从现在开始的答案。感谢你和@futurecat! – Dieter

相关问题