在Doctrine中使用inversedBy的未定义索引

时间:2018-02-18 00:47:57

标签: php symfony doctrine

如果我有以下设置,我的查询有问题。

我有一个实体

<?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

这与使用部分左连接查询的原理反转的映射有关。

0 个答案:

没有答案