如果我有以下设置,我的查询有问题。
我有一个实体
<?php
class EntityB
{
/**
* @ORM\ManyToOne(targetEntity="EntityA", inversedBy="someKeyWord")
* @ORM\JoinColumn(name="entityA_id", referencedColumnName="id")
*/
private $entityA;
}
现在,当您查询并获取数组作为结果时,它可以正常工作
// EntityBRepository.php
public function querySomeStuff($isArray=false)
{
$b = $entityManager->createQuery('
SELECT partial eA.{id, title}
FROM EntityB eB
LEFT JOIN eB.entityA eA
');
if ($isArray) {
$r = $b->getArrayResult();
} else {
$r = $b->getResult();
}
if (count($r)) {
return $r[0];
} else {
return null;
}
}
但是如果我执行相同的函数调用但是将第二个参数传递为false,这意味着,我不希望将结果作为数组得到,它会崩溃说Notice: Undefined index: someKeyWord
。
这与使用部分左连接查询的原理反转的映射有关。