我遇到了一个似乎不那么容易执行的简单请求 我想得到一张桌子的最后10条记录,所以我这样做了:
$records = $this->getDoctrine()
->getRepository('Bundle:Rec')
->findBy(array(), array('created' => 'DESC'), 10)
;
问题是记录将按降序排序 获得相同记录但按升序排列的最有效方法是什么?
答案 0 :(得分:2)
您可以使用uasort对记录进行排序:
$records = $this->getDoctrine()
->getRepository('Bundle:Rec')
->findBy(array(), array('created' => 'DESC'), 10)
;
uasort($records, function ($first, $second) {
return $first->getCreated() > $second->getCreated() ? 1 : -1;
});
答案 1 :(得分:0)
@Veve我已将您(已删除)的答案更改为:
$records = $this->getDoctrine()
->getRepository('Bundle:Rec')
->findBy(array(), array('created' => 'DESC'), 10)
;
$recCollection = new ArrayCollection($records);
$iterator = $recCollection->getIterator();
$iterator->uasort(function ($first, $second) {
return $first->getCreated() > $second->getCreated() ? 1 : -1;
});
$measurements = $iterator;