Model view controller 在Symfony2中的模板排序:使用细枝按属性对对象集合进行排序
在一个Symfony2项目中,我有一个从数据库中检索大量事件的控制器。这些事件具有开始时间、停止时间、类型等属性 在我看来,我想在一个表中显示这些事件,按开始时间排序。我用树枝做模板 我可以在将其传递给细枝模板之前在控制器中预先排序,但是控制器不应该关心视图是否希望对其排序。例如,我创建的另一个模板可能希望它按类型排序 现在,有没有一种方法可以让我将事件对象的集合按原样提供给细枝模板,并让它当场为我排序? 可能是一个“| sort”过滤器,但如果你知道我的意思的话,它前面有一个类似于“| property(start_time)”的过滤器:-) 欢迎任何意见,提前感谢Model view controller 在Symfony2中的模板排序:使用细枝按属性对对象集合进行排序,model-view-controller,templates,view,symfony,twig,Model View Controller,Templates,View,Symfony,Twig,在一个Symfony2项目中,我有一个从数据库中检索大量事件的控制器。这些事件具有开始时间、停止时间、类型等属性 在我看来,我想在一个表中显示这些事件,按开始时间排序。我用树枝做模板 我可以在将其传递给细枝模板之前在控制器中预先排序,但是控制器不应该关心视图是否希望对其排序。例如,我创建的另一个模板可能希望它按类型排序 现在,有没有一种方法可以让我将事件对象的集合按原样提供给细枝模板,并让它当场为我排序? 可能是一个“| sort”过滤器,但如果你知道我的意思的话,它前面有一个类似于“| pro
Dieter无法使用Twig按属性对数组进行排序。您仍然有
sort
过滤器(这里描述:),但它只会像php使用sort
函数一样对数组进行排序
您可以做的是创建TwigExtension并实现您自己的过滤器。这很简单,并且在这里有很好的文档记录:futurecat完全正确:没有现成的方法可以做到这一点。即使他的回答被接受,我也要补充以下内容以确保完整性: 您可以使用细枝扩展,它将提供所需的过滤器 使用
composer require snilius/twig sort by field
安装它,并享受其sortbyfield
过滤器:
{% for item in base | sortbyfield('name') %}
{{ item.name }}
{% endfor %}
这就是我需要知道的。谢谢你的分机提示!我再也不能亲自尝试了,但这似乎正是我当时所需要的。从现在起,我将把这个标记为答案。感谢你和@futurecat!