0

我对 Doctrine 和 ZF2 完全陌生,来自 C# env。从几天开始,我正在研究教义和 zf2 。并尝试学习基本的东西,以便我可以在未来几天构建RESTFull 服务 API 。现在,我正在尝试将学说 fetch 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);
    }

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"
      }

    }

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

我想将其构建为 RESTFull 服务

4

2 回答 2

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);
于 2013-10-10T20:06:00.567 回答
-1

您的代码中的所有内容都是正确的并且工作正常。JsonModel 是“空的”,因为您的班级成员是私有的。如果将它们设置为公开,您将获得预期的 JsonModel。

于 2013-12-22T00:24:04.127 回答