Die*_*ter 10 model-view-controller templates view symfony twig
在Symfony2项目中,我有一个控制器,可以从数据库中检索许多事件.这些事件具有start_time,stop_time,type等属性.
在我看来,我想在一个表中显示这些事件,按start_time排序.我用Twig作为模板.
我可以在将其传递给Twig模板之前对我的控制器进行预先排序,但是控制器不应该关心视图是否要对它进行排序.例如,我创建的另一个模板可能希望按类型排序.
现在,有没有办法可以将事件对象的集合按原样提供给Twig模板,并让它在现场为我排序?也许用'| 排序'过滤,但后来用'| property(start_time)'在它前面过滤,如果你知道我的意思:-)
欢迎任何建议,提前谢谢!
迪特
小智 15
无法使用Twig按属性对数组进行排序.你仍然有sort过滤器(在这里描述:http://twig.sensiolabs.org/doc/filters/sort.html),但它只会像你对该sort函数那样排序你的数组.
你可以做的是创建一个TwigExtension并实现自己的过滤器.这里很容易记录:http://twig.sensiolabs.org/doc/advanced.html
futurecat 是完全正确的:没有办法开箱即用地做到这一点。即使他的答案已被接受,我也会添加以下内容以确保完整性:
您可以使用snilius/twig-sort-by-field Twig 扩展,它将提供您需要的过滤器。
使用安装它composer require snilius/twig-sort-by-field,并享受它的sortbyfield过滤器:
{% for item in base | sortbyfield('name') %}
{{ item.name }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22349 次 |
| 最近记录: |