在模板中排序,在 Symfony2 中:使用 Twig 按属性对对象集合进行排序 [英] Sorting in the template, in Symfony2: using Twig to sort a collection of objects by property
问题描述
In a Symfony2 project I have a controller that retrieves a number of incidents from the database. These incidents have properties like start_time, stop_time, type, etc.
In my view, I want to show these incidents in a table, sorted by start_time. I use Twig for my templating.
I can pre-sort in my controller before passing it to the Twig template, but imho the controller shouldn't care that the view wants it sorted. Maybe another template that I create will want it sorted by type, for example.
Now, is there a way that I can give the collection of incident-objects as-is to the Twig template, and have it sort it for me on the spot? Maybe with a '| sort' filter, but then with something like a '| property(start_time)' filter in front of it, if you know what I mean :-)
Any advice is welcome, thanks in advance!
Dieter
futurecat is totally right: there's no way to do this out-of-the-box. Even if his answer has been accepted, I'm adding this for completeness:
You can use snilius/twig-sort-by-field Twig extension, which will provide the filter you need.
Install it using composer require snilius/twig-sort-by-field
, and enjoy its sortbyfield
filter:
{% for item in base | sortbyfield('name') %}
{{ item.name }}
{% endfor %}
这篇关于在模板中排序,在 Symfony2 中:使用 Twig 按属性对对象集合进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!