数数多对多的关系项目原则,象征2


Count many to many relationship items Doctrine, Symfony2

有人能帮我解决这个问题吗。我有两张这样连接的桌子:

class Splittest {
     /**
 * @ORM'ManyToMany(targetEntity="Landing")
 * @ORM'JoinTable(name="splittest_landings",
 *      joinColumns={@ORM'JoinColumn(name="splittest_id", referencedColumnName="id")},
 *      inverseJoinColumns={@ORM'JoinColumn(name="landing_id", referencedColumnName="id")}
 *      )
 **/
protected $landings;
}

现在我想选择所有具有多个着陆的拆分测试。如何在DQL中执行此操作?

您需要使用having来选择所有具有1个以上着陆的拆分测试

SELECT s 
FROM MyBundle'Entity'Splittest
JOIN s.landings l
HAVING COUNT(l) > 1

与使用查询生成器相同

$qb->select("s")
    ->from('MyBundle'Entity'Splittest', 's')
    ->innerJoin('s.landings', 'l')
    ->having('count(l) > 1');