2017-02-09 90 views
-1

也许我在问一个愚蠢的问题,或者我正在寻找的东西不存在。在这种情况下,这将是一个很好的功能。 有没有办法让所有相关实体获得一个对象,并将所有数据打印出来?Symfony2 + Doctrine - 获取所有关系数据的对象

例如,我有一个Customer实体和一个Location实体。他们处于ManyToOne关系中(一个客户可以有多个地点)。

我想用这样一个结构返回JsonResponse

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

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

谢谢!

编辑 我写了解答作为答案。

+2

所以基本上你只是想序列化一个Customer对象,应该使用(JMS)Serializer相当简单。 – Gerry

+0

@Gerry谢谢,我解决了! – Dygne

回答

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);