Doctrine:在集合

时间:2017-10-24 09:56:24

标签: symfony doctrine-orm

在我的应用程序中,有一个Case实体,其中包含Operator个实体的集合。

执行此请求时:

$this->createQueryBuilder('c')
    ->leftJoin('c.operators', 'od') // d -> one-to-many -> operator
    ->setMaxResults(100)
    ->getQuery()
    ->getResult()
;

我只得到71个结果(假设Cases没有任何Operator)。

当没有选择时,保湿到阵列效果很好:

$this->createQueryBuilder('c')
    ->select('c, od') // notice select here which yields to 71 results (without it I get 100 results)
    ->leftJoin('c.operators', 'od')
    ->setMaxResults(100)
    ->getQuery()
    ->getArrayResult()
;

事情变得非常混乱,因为使用->getSQL()获得的真实SQL在两种情况下都会返回100。

任何人都可以提供帮助吗?

更新

实际上我在结果集中有100个结果。这些结果CasesOperators相结合。当Dossier多次输入结果集时,结果集中的Operators有多个Dossier。 Doctrine会自动将这100行的结果集缩小为71个唯一Cases的数组。

0 个答案:

没有答案