php - 具有联接的多维数组结果

标签 php doctrine-orm symfony

我正在连接表,我想根据我的连接获得多维查询结果。

# AppBundle:ProductRepository

$this->createQueryBuilder('pr')
    ->select('pk.id', 'pk.name', 'pr.id', 'pr.label')
    ->join('pr.package', 'pk')
    ->getQuery()->getResult();

如您所见,Product 链接到 Package(多对一)

这是我得到的结果:

array(
    array('id' => '1', 'name' => 'package 1', 'id1' => 1, 'label' => 'product 1'),
    array('id' => '1', 'name' => 'package 1', 'id1' => 2, 'label' => 'product 2'),
    array('id' => '2', 'name' => 'package 2', 'id1' => 3, 'label' => 'product 3'),
)

这是我想要得到的:

array(
    array(
        'id' => '1',
        'name' => 'package 1',
        'products' => array(
            array(
                'id' => 1,
                'label' => 'product 1',
            ),
            array(
                'id' => 2,
                'label' => 'product 2',
            ),
        ),
    ),
    array(
        'id' => '2',
        'name' => 'package 2',
        'products' => array(
            array(
                'id' => 3,
                'label' => 'product 3',
            ),
        ),
    ),
)

有没有办法将这种多维数组与 Doctrine 2 结合起来?

我的意思是 Doctrine 2,而不是“post prod”php 循环

最佳答案

您需要 partial results 的组合用 array hydrator .尝试:

$this->createQueryBuilder('pr')
    ->select('partial pk.{id, name}, partial pr.{id, label}')
    ->join('pr.package', 'pk')
    ->getQuery()
    ->getArrayResult()
;

关于php - 具有联接的多维数组结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37294157/

相关文章:

php - 如何从PHP中的十进制数中删除最后一位

php - Doctrine 2.2.2 - 一次插入多个条目的问题?

php - 我正在失去错误与 Symfony2 中表单字段的关联

php - where查询+主义

php - Doctrine2如何处理回滚后更新实体? ("The EntityManager is closed")

php - CakePHP 组和计数

php - ZMQ订阅者在长时间间隔后没有收到来自远程服务器的消息

php - mysql_query 在最新的 php 版本中不起作用

php - 消除与教义的关联

php - 如何在提交之前预先检查不同 sql 表中的表单值 - symfony