Doctrine orm 条令查询,关联多通

Doctrine orm 条令查询,关联多通,doctrine-orm,doctrine,dql,Doctrine Orm,Doctrine,Dql,我有两个实体: Class A { /** * @ORM\ManyToOne(...) */ private $b; /** * @ORM\Column(name="date", type="date") */ private $date; } Class B { /** * @ORM\OneToMany(...) */ private $a; } 需要查询get all en

我有两个实体:

Class A {

    /**
     * @ORM\ManyToOne(...)
     */
    private $b;

    /**
     * @ORM\Column(name="date", type="date")
     */
    private $date;
}

Class B {

    /**
     * @ORM\OneToMany(...)
     */
    private $a;

}
需要查询get all entities B,其中您的a的所有日期都低于我设置为参数的日期

现在有这些查询,但没有结果:

从实体b中选择b:b内部联接b.a其中a.date>:日期


您可以执行以下操作:

public function myfunction($date){
    $dql = "SELECT b FROM Entity:B as b WHERE b.a IN (".
               "SELECT a.id FROM Entity:A as a WHERE a.date > :date".
           ")";
    $query = $this->getEntityManager()
        ->createQuery($dql)
        ->setParameter('date', $date)
    ;

    return $query->getResult();
}

我在我的一些实体上进行了测试,这些实体具有类似的结构,并且它可以工作

很高兴我能提供帮助!我在一个几乎相同的问题上浪费了很多时间!