使用doctrine查询构建器创建普通表,而不使用实体之间的关系

时间:2014-09-02 11:59:45

标签: php symfony doctrine-orm

我对symfony和doctrine有一个复发问题。 我必须在另一个应用程序的数据库中播放,所以我无法在实体之间设置关系。

当我想在某些表上进行左连接时,doctrine会返回一种奇怪的数据格式,如:

array[0] => first entity
array[1] => fisrt joined entity
array[2] => second entity
array[3] => second joined entity
...

我只想拥有:

array[0] => object(id, name, joined entity).... 

我怎么能这样做。

以下是我的要求之一:

   $qb = $this->createQueryBuilder('o')->select('o, childs');

       $qb->where('o.unitid = :unitid')
                     ->setParameter('unitid', $unitid);

        $qb->leftJoin(
        '\Entity\Objectconnectors',
        'oc',
        \Doctrine\ORM\Query\Expr\Join::WITH,
        'oc.parentkey = o.key'
)
           ->leftJoin(
        '\Entity\Objects',
        'childs',
        \Doctrine\ORM\Query\Expr\Join::WITH,
        'oc.childkey = childs.key'
);





         return  $qb->getQuery()
                    ->getResult();

提前谢谢你,

1 个答案:

答案 0 :(得分:1)

您必须在类中定义关系来执行此操作,否则教义无法将数据水合到实体对象,因为该类未定义此关联。