Doctrine2&zf2:fetchAll()结果为JSON,将结果转换为数组,然后转换为ZF2中的json

pan*_*dra 0 json zend-framework doctrine-orm zend-framework2

我完全是Doctrine和ZF2的新手,来自C#env.从几天开始学习教义和zf2.并尝试学习基本的东西,以便我可以 在未来几天内构建RESTFull服务API.现在,我试图将原则获取All()结果输入到json但未能这样做.mys API客户端(backbone.js)工作正常,它是结果,但显示空对象

我的控制器代码是这样的

 public function getList() {

        $repository = $this->getEntityManager()->getRepository('Application\Entity\Test');

        $posts = $repository->findAll();

      echo var_dump((array)$posts);

      header('Access-Control-Allow-Origin:http://api.server.com');

     return new JsonModel($posts);
    }
Run Code Online (Sandbox Code Playgroud)

var_dump结果

array(2) {
      [0]=>
      object(Application\Entity\Test)#339 (2) {
        ["id":"Application\Entity\Test":private]=>
        int(2)
        ["name":"Application\Entity\Test":private]=>
        string(5) "Kumar"
      }
      [1]=>
      object(Application\Entity\Test)#340 (2) {
        ["id":"Application\Entity\Test":private]=>
        int(1)
        ["name":"Application\Entity\Test":private]=>
        string(8) "Panindra"
      }

    }
Run Code Online (Sandbox Code Playgroud)

而我的JSONModel输出是[{},{}].

我想将其构建为RESTFull服务

edi*_*igu 6

您可以使用QueryBuilder API和对象的getResult()方法来实现它.例:Doctrine\ORM\QueryHYDRATE_ARRAY

$queryBuilder = $this->getEntityManager()->createQueryBuilder();
$queryBuilder->select('t')
             ->from('Application\Entity\Test', 't');

$results = $queryBuilder->getQuery()
                        ->getResult(\Doctrine\ORM\AbstractQuery::HYDRATE_ARRAY);

return new JsonModel($results);
Run Code Online (Sandbox Code Playgroud)