我需要将照片列表作为API端点的一部分返回。
但是,当我尝试返回Symfony查询构建器返回的对象列表时,它会返回每个照片对象的所有CHILD数据,例如,与附加到照片的用户有关的数据。这严重影响了返回的数据。
如何选择或过滤对象列表,以便我的API端点仅返回特定字段?
public function getManyAction(Request $request, $card_id) {
$photos = $this->getDoctrine()->getRepository('AppBundle:Photo')->findByCard($card_id);
if($photos) {
$response = $this->serializeResponseToJson(true, null, $photos);
}
else{
$response = $this->serializeResponseToJson(false, "No photos were found for this card");
}
return new JsonResponse($response);
}
答案 0 :(得分:1)
您可以使用以下内容:
...
$em=$this->getDoctrine()->getManager();
$query=$em->createQuery('SELECT p.field1,p.field2,p.field3 FROM AppBundle:Photo p WHERE p.card=:card')->setParameter('card',$card_id);
$photos=$query->getResult();
...
return new JsonResponse($response);