3
之间差在申请2分之1:
$qb = $this->createQueryBuilder('tu');
$transUnits = $qb->select('tu, te')
->leftJoin('tu.translations', 'te')
->andWhere($qb->expr()->in('tu.id', $ids))
->andWhere($qb->expr()->in('te.locale', $locales))
->orderBy(sprintf('tu.%s', $sortColumn), $order)
->getQuery()
->getArrayResult();
and
$qb = $this->createQueryBuilder('tu');
$transUnits = $qb->select('tu, te')
->leftJoin('AppBundle:Translation', 'te')
->andWhere($qb->expr()->in('tu.id', $ids))
->andWhere($qb->expr()->in('te.locale', $locales))
->orderBy(sprintf('tu.%s', $sortColumn), $order)
->getQuery()
->getArrayResult();
的函数称为具有完全相同的参数。
在我与替换“tu.translations”的第二壳体“的appbundle:翻译”,因为不认识“翻译”,其中翻译是定义:
<one-to-many field="translations" target-entity="TranslationBundle\Entity\Translation" mapped-by="transUnit">
<cascade>
<cascade-all/>
</cascade>
</one-to-many>
在第一种情况的结果是:阵列(13 ){...},这是正确的格式结果;在第二种情况下错误格式结果是:阵列(70){...}
在每个查询上调用' - > getDQL'(在' - > getQuery()'之后),你会看到。 – Alsatian
我添加注释。 –