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命令到多个关联和匹配条件的主要内容,如果未能解决你的问题,请参考以下文章

Doctrine 不会在我的 OneToMany 关联中保存数据

如何有条件地将 C 代码片段编译到我的 Perl 模块?

如何在Doctrine2中为单个实体使用多个存储库?

什么时候才值得在Doctrine2中保持反向关系?

左连接 ON 条件和 Doctrine 中的其他条件语法

Doctrine2 关联持久性