Doctrine2 QueryBuilder:如何过滤掉OneToMany的零计数实体

时间:2015-05-25 19:40:30

标签: symfony doctrine-orm associations one-to-many query-builder

在我的Dymfony2 / Doctrine2应用程序中,我在对象及其子对象之间存在 oneToMany 关系。

我想选择所有没有孩子的物品。

我遇到了各种错误:期望SingleValuedAssociationField,无法添加非结果变量等等。

$queryBuilder = $this
    ->createQueryBuilder('object')
    ->leftJoin('object.children', 'children')
    ->andWhere('children IS NULL')
    // tested with a parameter, with addselect COUNT(children) and 0 condition, etc.
    ->getQuery()
    ->getResult();

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:10)

有一个名为SIZE()的选择器,应该可以解决问题。更多内容请阅读here.

尝试这样的事情:

$this
    ->createQueryBuilder('object')
    ->leftJoin('object.children', 'children')
    ->where('SIZE(object.children) = 0')
    ->getQuery()
    ->getResult();