我有以下查询:
<?php
$em = $this->getDoctrine()->getManager();
$data['ps'] = $em->createQuery('SELECT s,ps FROM AppBundle:Sucursales s LEFT JOIN AppBundle:ComprasProductosSucursales ps WITH s.id = ps.sucursal')->getResult();
但是我得到的结果如下图所示:
![Doctrine2结果集的示例] [1]
我希望$data['ps'][1]
成为$data['ps'][0]
的一部分,否则数组的迭代会非常奇怪。
那么,有可能将连接表AppBundle的结果:ComprasProductosSucursales作为AppBundle:Sucursales数据的列?
的ORM:
AppBundle\Entity\Sucursales:
type: entity
table: sucursales
# Note: no relations defined, deleting the rest of the columns for clarity
AppBundle\Entity\ComprasProductosSucursales:
type: entity
table: compras_productos_sucursales
manyToOne:
producto:
targetEntity: ComprasProductos
sucursal:
targetEntity: Sucursales
cascade: { }
答案 0 :(得分:1)
假设您的实体相关,那么通常您的DQL查询将类似于:
$dql <<<EOT
SELECT s,ps FROM AppBundle:Sucursales s
LEFT JOIN s.ps ps
EOT;
Doctrine负责连接上的with条件,并为您提供嵌套的结果集。假设您的Sucursales有一个名为ps的集合属性。我想我也假设你正在创建Doctrine 2实体并让它们相关。
更多信息:http://doctrine-orm.readthedocs.org/en/latest/reference/dql-doctrine-query-language.html#joins