我是一个拥有OneToMany关联的实体。在这个关联中,我已经定义了一个orderby,当我检索它时,它工作正常。
class client {
...
/**
* @ORM\OneToMany(targetEntity="Reservation", mappedBy="client")
* @ORM\OrderBy({"reservation_date" = "DESC"})
*/
protected $reservations;
....
public function getReservations()
{
return $this->reservations;
}
....
}
getReservations
方法工作正常,它会检索Reservations
字段排序的所有reservation_date
。但是如果我添加这个方法:
public function getActiveReservations() {
$activeCriteria = Criteria::create()
->where(Criteria::expr()->eq("active", true));
return $this->getReservations()->matching($activeCriteria);
}
匹配条件 mess 所有结果均未按reservation_field
排序。
如何在匹配条件后保留订单?
答案 0 :(得分:3)
如评论中所述,您可以使用Criteria::orderBy(array $orderings)
即
$activeCriteria = Criteria::create()
->where(Criteria::expr()->eq("active", true))
->orderBy(array('reservation_date' => Criteria::DESC));
学说非常完整,如果你在documentation中找不到你的答案,也会毫不犹豫地开课并尝试。