空JSON返回 - Symfony3

时间:2017-07-26 18:28:51

标签: php json symfony

我是PHP和PHP的初学者Symfony 3和我有一个问题: json_encode返回空对象。您可以查看下面的图片和代码。

/**
 * @Rest\Get("/user")
 */
public function getAction()
{
    $restresult = $this->getDoctrine()->getRepository('AppBundle:User')->findAll();
    if ($restresult === null) {
        return new View("there are no users exist", Response::HTTP_NOT_FOUND);
    }

    return new Response(json_encode($restresult), Response::HTTP_OK);
}

enter image description here

2 个答案:

答案 0 :(得分:4)

我认为因为findAll()方法返回一个对象数组,你应该在存储库中个性化你的方法以获得数组结果,

public function findAllArray()
 {
     $qb = $this
         ->createQueryBuilder('u')
         ->select('u');
     return $qb->getQuery()->getArrayResult();
 }

另一件事,在Symfony中你可以使用New JsonResponse发送Json数据

return new JsonResponse($restresult);

答案 1 :(得分:1)

存储库方法findAll返回对象数组。当您对具有私有属性的对象使用json_encode时,它会返回{},除非您实现JsonSerialize interface