2016-07-03 2 views
0

내 API에서 FOSrestbundle을 사용하여 내 개체를 JSON으로 가져옵니다. 그래서 내 컨트롤러가 같이 :FOSRestBundle serializer 결과가 너무 많음

{ 
    "title": "My Article", 
    "comments": [ 
     { 
      "content": "my first comment", 
      "added_by": { 
       "username": "John" 
      } 
     }, 
     { 
      "content": "my second comment", 
      "added_by": { 
       "username": "Smith" 
      } 
     } 
    ] 
} 

을하고 나는 그것을 렌더링 할 때,이 :

public function getArticleAction($id) 
    { 
     $article = $this->getDoctrine() 
      ->getRepository('ApiBundle:Article') 
      ->find($id); 
     return $this->handleView($this->view($article)); 
    } 

그리고 내 문제는 문서 주석을 포함하고, 사용자가 추가 그래서 내 JSON은 같다 너무 많은 쿼리, 각 의견에 대한 사용자 정보를 얻기위한 쿼리가 있습니다.

내 기사 개체를 querybuilder와 함께 많이 가입해야하나요 (예일 뿐이므로 더 많은 관계가 있음) 하나의 쿼리에서 모든 정보를 얻거나 다른 트릭을 피하십시오 그거야?

+0

sf2와 함께 편안한 API에 관한 깊은 지식은 없지만 jmsserailser를 사용하여 제외 정책에 대해 google에서 그래프의 필수 항목 만 포함해야한다고 생각합니다 .http : //williamdurand.fr/2012/08/02/rest -apis-with-symfony2-the-right-way/# get-what –

답변

0

Doctrine을 사용하여 데이터를 쿼리하는 동안 added_by 관계에 대해 EAGER로드를 사용해야합니다. 이렇게하면 직렬화에 필요한 모든 데이터를 한 번에 쿼리 할 수 ​​있습니다.