1
我有一個OneToMany關聯的實體。在這個關聯中,我定義了一個orderby,當我檢索它時,它工作正常。學說訂購許多協會和匹配標準
class client {
...
/**
* @ORM\OneToMany(targetEntity="Reservation", mappedBy="client")
* @ORM\OrderBy({"reservation_date" = "DESC"})
*/
protected $reservations;
....
public function getReservations()
{
return $this->reservations;
}
....
}
的getReservations
方法工作正常,它檢索由reservation_date
場下令所有Reservations
。但是,如果我加入這個方法:
public function getActiveReservations() {
$activeCriteria = Criteria::create()
->where(Criteria::expr()->eq("active", true));
return $this->getReservations()->matching($activeCriteria);
}
的匹配標準亂所有的結果,而不是由reservation_field
有序。
如何在匹配標準後保留訂單?
您可能需要*使用'Criteria :: orderBy'重新排序*。 – Yoshi
是的,謝謝,如果我將' - > orderBy(array(「reservation_date」=> Criteria :: DESC))添加到條件定義中,我會得到有序的結果。但是,爲什麼它不保存訂單? –
我想這是'匹配'如何處理「過濾」的副作用。如果你查看源代碼,你會發現它經歷了很多代碼,並且可能在某種程度上失去了最初的排序。 – Yoshi