Doctrine命令到多个关联和匹配条件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Doctrine命令到多个关联和匹配条件相关的知识,希望对你有一定的参考价值。
我是一个拥有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);
}
匹配标准使所有结果混乱,并且不是由reservation_field
订购的。
如何在匹配条件后保留订单?
答案
如评论中所述,您可以使用Criteria::orderBy(array $orderings)
即
$activeCriteria = Criteria::create()
->where(Criteria::expr()->eq("active", true))
->orderBy(array('reservation_date' => Criteria::DESC));
学说非常完整,如果你在documentation找不到你的答案,也可以毫不犹豫地开课并尝试。
以上是关于Doctrine命令到多个关联和匹配条件的主要内容,如果未能解决你的问题,请参考以下文章