如何返回JsonModel数组

时间:2016-02-24 17:12:49

标签: php api rest zend-framework zend-framework2

从我的控制器扩展Zend的AbstractRestfulController,我试图返回一个JsonModel的数组,但我只是回到HTML。

我正在尝试做的一个非常简单的例子是:

$models = [];

for ($i = 0; $i < 5; ++$i) {
    $model = new MyJsonModel();
    $model->setDocument($someObj);
    $models[] = $model;
}

return Json::encode($models);

MyJsonModel只是JsonModel的一个子类,它添加了一个序列化为JSON的“document”属性。

最终,我只是在寻找类似的东西:

[
  {
    key:val      
  },
  {
    key:val
  },
  {
    key:val
  }
]

2 个答案:

答案 0 :(得分:0)

我认为你需要添加你的module.config.php

'view_manager' => [
    'strategies' => [ViewJsonStrategy],
    // ... your config ...
]

https://akrabat.com/returning-json-from-a-zf2-controller-action/

的更多信息

答案 1 :(得分:0)

除了Alain的答案,您还可以尝试以下方法:

首先检查你是否有json import

Zend\View\Model\JsonModel; 

随后创建您的&#34;阵列&#34;然后只需将您的数组作为json返回

return new JsonModel($model);