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;