我有2个实体,Invoice和Advance。每个人都有一个" paidAt"属性。
在控制器中,我在日期范围内获取Invoice和Advance。然后,我将它们合并为1个单独的数组并将其推入我的视图中,在那里我将它们显示在列表中。
在将它们推向我的观点之前,我想使用" paidAt"属性。我在PHP文档上发现了一些多维排序函数,但都使用了php本机函数array_multisort()
所以Symfony给我一个错误:Cannot use object of type Entity\Invoice as array
无论如何都要做我正在寻找的事情?
答案 0 :(得分:1)
如果您在两个实体中都有get getPaidAt()
,则可以使用升序
usort(
$collection,
function($a, $b) {
if ($a->getPaidAt() === $b->getPaidAt()) {
return 0;
}
return ($a->getPaidAt() < $b->getPaidAt())? -1 : 1;
}
);
如果您想对降序进行排序,只需将<
替换为>
。
答案 1 :(得分:0)
你可以使用usort
编写自己的比较函数,它必须适合发票和预付(你有超类吗?)
http://php.net/manual/de/function.usort.php
其他信息:using usort with associative array inside symfony2 controller