我对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();
提前谢谢你,
答案 0 :(得分:1)
您必须在类中定义关系来执行此操作,否则教义无法将数据水合到实体对象,因为该类未定义此关联。