Sorting 条令获取10条最新记录,从最早到最新排序
我被一个似乎不太容易执行的简单请求所困扰。Sorting 条令获取10条最新记录,从最早到最新排序,sorting,doctrine-orm,symfony,Sorting,Doctrine Orm,Symfony,我被一个似乎不太容易执行的简单请求所困扰。 我想得到一个表的最后10条记录,所以我这样做: $records = $this->getDoctrine() ->getRepository('Bundle:Rec') ->findBy(array(), array('created' => 'DESC'), 10) ; 问题是记录将按降序排序。 获取相同记录但按升序排列的最有效方法是什么?您可以使用以下方法对记录进行排序: @Veve我已更改您(已删除)对
我想得到一个表的最后10条记录,所以我这样做:
$records = $this->getDoctrine()
->getRepository('Bundle:Rec')
->findBy(array(), array('created' => 'DESC'), 10)
;
问题是记录将按降序排序。获取相同记录但按升序排列的最有效方法是什么?您可以使用以下方法对记录进行排序: @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;
你不能简单地使用
array('created'=>'ASC')
?他试图对DESC结果进行排序,这样array('created'=>'ASC')
工作正常,没有正确理解我刚才试过的问题,我得到了这个错误:调用数组上的成员函数matching(),可能我做错了,但$records是数组,它没有getIterator()method@JulienM你是对的,我的错。我用我认为最有效的方法编辑了我的答案(无需创建ArrayCollection),你能看一下吗?
$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;