仅返回Symfony

时间:2016-05-02 11:26:22

标签: php api symfony

我需要将照片列表作为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);

}

1 个答案:

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