Symfony2 + Doctrine - 获取包含所有关系数据的对象

时间:2017-02-09 15:54:55

标签: json symfony doctrine-orm

也许我会问一个愚蠢的问题,或者我搜索的内容并不存在。在这种情况下,这将是一个很好的功能。 有没有办法让所有相关实体获得一个对象,并且打印出的所有数据都是某种方式?

例如,我有一个Customer实体和一个Location实体。它们处于ManyToOne关系(一个客户可以有多个位置)。

我想返回一个JsonResponse,结构如下:

    { customer:
      [ {id: , name: , locations:
        [ {id: , name: , address: }
        ]}
      ]
    }

我的想法是调用一个方法(如果有的话)返回一个数组,该数组具有包含所有其他相关对象的对象结构,然后应用jms_serializer返回JSON结构。

谢谢!

修改 我写了解决方案作为答案。

1 个答案:

答案 0 :(得分:0)

解决方案比我想象的要容易。在这里,如果有人需要它:

    $repository = $this->getDoctrine()->getRepository('AppBundle:Customers');
    $customers = $repository->findAll();
    $i = count($customers);

    for ($j = 0; $j < $i; $j++) {

        $a['customers'][$j] = $customers[$j];

    }

    $serializer = $this->get('jms_serializer');
    $response = $serializer->serialize($a,'json');

    return new Response($response);