首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在模板中排序,在Symfony2中:使用Twig按属性对对象集合进行排序

在模板中排序,在Symfony2中:使用Twig按属性对对象集合进行排序
EN

Stack Overflow用户
提问于 2011-08-25 19:08:57
回答 2查看 24.3K关注 0票数 10

在一个Symfony2项目中,我有一个从数据库中检索大量事件的控制器。这些事件具有start_time、stop_time、类型等属性。

在我的视图中,我希望在一个表中显示这些事件,按start_time排序。我使用Twig作为我的模板。

在将其传递给Twig模板之前,我可以在控制器中进行预排序,但是控制器不应该关心视图是否希望对其进行排序。例如,也许我创建的另一个模板会希望它按类型排序。

现在,有没有一种方法可以将事件对象的集合原样提供给Twig模板,并让它当场为我排序?可以使用'| sort‘筛选器,但在它前面使用类似'| property(start_time)’筛选器,如果您明白我的意思:-)

欢迎任何建议,提前谢谢!

迪特尔

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-06 09:43:12

futurecat是完全正确的:没有办法做到这一点的开箱即用。即使他的回答已经被接受,为了完整性,我添加了以下内容:

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{% for item in base | sortbyfield('name') %}
    {{ item.name }}
{% endfor %}
票数 3
EN

Stack Overflow用户

发布于 2011-08-26 08:26:47

使用Twig无法按属性对数组进行排序。你仍然有sort过滤器(在这里描述:http://twig.sensiolabs.org/doc/filters/sort.html),但是它只是对你的数组进行排序,就像php对sort函数所做的那样。

您可以做的是创建一个TwigExtension并实现您自己的过滤器。它非常简单,并且在这里有很好的文档:http://twig.sensiolabs.org/doc/advanced.html

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7195862

复制
相关文章
HDOJ1021题 Fibonacci Again 应用求模公式
Problem Description There are another kind of Fibonacci numbers: F(0) = 7, F(1) = 11, F(n) = F(n-1) + F(n-2) (n>=2).
谙忆
2021/01/19
2940
【模板小程序】求第n个fibonacci数
1 //fibonacci,find the nth num. 1 1 2 3 5 8... 2 #include <iostream> 3 using namespace std; 4 5 int fib(int n){ 6 if(n==1 || n==2){ 7 return 1; 8 } 9 int prev=1; 10 int result=1; 11 n-=2; 12 while(n--){ 13 result+=prev; 14
xiaoxi666
2018/10/29
4510
Python快速计算Fibonacci数列中第n项的方法
from time import time from functools import lru_cache def fibo1(n): '''递归法''' if n in (1, 2): return 1 return fibo1(n-1) + fibo1(n-2) @lru_cache(maxsize=64) def fibo2(n): '''递归法,使用缓存修饰器加速''' if n in (1, 2): return 1 return fibo2(n-1) + fibo2(n-2) d
Python小屋屋主
2018/04/16
1.4K0
数学--组合数学--当C(n,m)中n固定m++的递推模板
ll power(ll a, ll b, ll p) { ll ans = 1 % p; for (; b; b >>= 1) { if (b & 1) ans = ans * a % p; a = a * a % p; } return ans; } long long mm[500000]; void init(ll n, ll k) { mm[1] = 1; for (ll i =2;
风骨散人Chiam
2020/11/03
4960
整数划分问题(详解 n > m 情况)
正整数n的所有不同划分中,将最大加数x不大于m的情况记为q(n,m),这个称作n的m划分
ruochen
2021/05/14
8250
整数划分问题(详解 n > m 情况)
2021-08-29:N * M的棋盘(N和M是输入参数),每种颜色
2021-08-29:N * M的棋盘(N和M是输入参数),每种颜色的格子数必须相同的,上下左右的格子算相邻,相邻格子染的颜色必须不同,所有格子必须染色,返回至少多少种颜色可以完成任务。
福大大架构师每日一题
2021/08/30
3350
2021-08-29:N * M的棋盘(N和M是输入参数),每种颜色
Fibonacci
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因[数学家]列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为兔子数列.
AngelNH
2020/04/16
4160
从M走到N最少步数
假设一个人站在 X 轴的正半轴上,起始点在 M 点(0 <= M <= 100000),他每次可以向左走一步,向右走一步,或者走到所在坐标乘以2的位置,最终来到 N 点(0 <= N <= 100000)。问:所需的最少步数是几步?(如果不能从 M 走到 N 点,则返回 -1)
echobingo
2018/10/10
8080
构建列表 [[0] * m] * n带来的隐患
这里只修改了L[0][0],但是却L却输出: [[1, 0, 0], [1, 0, 0]]
生信编程日常
2020/05/08
5680
共模-差模
差模信号:就是这两个信号各自拥有的那部分:对于v1,VDiff=(v1-v2)/2;
crazy_hw
2022/08/29
7240
共模-差模
2023-06-24:给你一根长度为 n 的绳子, 请把绳子剪成整数长度的 m 段, m、n都是整数,n > 1并且m > 1,
例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。
福大大架构师每日一题
2023/07/08
1950
2023-06-24:给你一根长度为 n 的绳子, 请把绳子剪成整数长度的 m 段, m、n都是整数,n > 1并且m > 1,
Fibonacci数
无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列,它可以递归地定义为 F(n)=1 ...........(n=1或n=2) F(n)=F(n-1)+F(n-2).....(n>2) 现要你来求第n个斐波纳奇数。(第1个、第二个都为1)
书童小二
2018/09/03
4130
1978 Fibonacci数列 3
1978 Fibonacci数列 3 题目描述 Description 斐波纳契数列是这样的数列: f1 = 1 f2 = 1 f3 = 2 f4 = 3 .... fn = fn-1 + fn-2 输入一个整数n 求fn 输入描述 Input Description 一个整数n, n<= 40 输出描述 Output Description 一个整数fn 样例输入 Sample Input 3 样例输出 Sample Output 2 数据范围及提示 Data Size & Hint n<=40 1
attack
2018/04/03
7120
1250 Fibonacci数列
时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果 题目描述 Description 定义:f0=f1=1, fn=fn-1+fn-2(n>=2)。{fi}称为Fibonacci数列。 输入n,求fn mod q。其中1<=q<=30000。 输入描述 Input Description 第一行一个数T(1<=T<=10000)。 以下T行,每行两个数,n,q(n<=109, 1<=q<=30000) 输出描述 Output Descriptio
attack
2018/04/12
7130
三种Fibonacci数列第n项计算方法及其优劣分析
感谢国防科技大学刘万伟老师和中国传媒大学胡凤国两位老师提供的思路,文章作者不能超过8个字符,我的名字就写个姓吧,名字不写了^_^。另外,除了本文讨论的三种方法,之前的文章中还讨论了另外几种方法,详见相关阅读第一篇。 def fibo4(n): '''递推法 适用于任意大小的n 使用生成器函数 速度快,无误差''' def nested(): a, b = 1, 1 while True: yield a a, b = b, a+b
Python小屋屋主
2018/04/16
9060
Fibonacci数列第n项的第7种计算方法:Python列表
前面已经分享了几种计算Fibonacci数列第n项的方法,详见Python快速计算Fibonacci数列中第n项的方法和三种Fibonacci数列第n项计算方法及其优劣分析,本文分享第7种(过几天分享第8种),主要演示列表的append()和pop()这两个方法和反向索引的用法。如果n小的话,可以只append()不pop()(注意,这样的话append()的参数要改为data[-1]+data[-2]),但是如果n很大的话会导致内存崩溃。 下面的代码使用第800万项对本文的第7种方法和前面6种中最快的方法
Python小屋屋主
2018/04/16
6530
Oracle查询第m到第n条数据
这种方法是最优方法,因为该方法进行排序后取值,所以能够保证两次取值都会取出相同的值。
SuperHeroes
2019/03/12
1.4K0
入门训练Fibonacci数列
本文最后更新于 1163 天前,其中的信息可能已经有所发展或是发生改变。 #include<iostream> #include<vector> using namespace std; vector<int> a; void init() { a.push_back(1); a.push_back(1); for(int i=2;i<1000000;i++){ a.push_back((a[i-2]+a[i-1])%10007); } } int main(){ int n,r,i; c
Yuyy
2022/06/28
2140
python fibonacci数列
看了python学习笔记,其中一个讲fibonacci数列的例子,觉得讲的很好,很受用,写到这里没事能翻翻
py3study
2020/01/07
8580
SQL优化之LIMIT语法, limit n,m 和 limit n有什么区别?
在某些面试题中会遇到这样的问答或笔试题:“limit 0,1 和 limit 1有什么区别?” 要准确回答这个问题就等深入明白limit一个参数和两个参数的本质区别。
Java深度编程
2020/06/10
12.3K0
SQL优化之LIMIT语法,  limit n,m 和 limit n有什么区别?

相似问题

求fibonacci n模m的快速算法

30

巨型fibonacci模m C++

10

计算Fibonacci无模m的Pisano周期

20

计算n,其中a^n模m= 1?

24

Sympy矩阵M(模n)多么?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文