【发布时间】:2017-02-27 05:48:06
【问题描述】:
到目前为止,我已经弄清楚了如何在 Zend Framework 2 中返回典型的 JSON 响应。首先,我将 ViewJsonStrategy 添加到 view_manager 配置的 strategies 部分。然后,我没有从控制器操作返回 ViewModel 实例,而是返回一个设置了所有变量的 JsonModel 实例。
现在我已经弄清楚了那部分,我需要了解如何呈现视图并在 JSON 响应中返回它。在 ZF1 中,我可以使用$this->view->render($scriptName),它将 HTML 作为字符串返回。在 ZF2 中,Zend\View\View::render(...) 方法返回void。
那么...如何呈现 HTML 视图脚本并在一个请求中以 JSON 响应的形式返回它?
这就是我现在拥有的:
if ($this->getRequest()->isXmlHttpRequest()) {
$jsonModel = new JsonModel(...);
/* @todo Render HTML script into `$html` variable, and add to `JsonModel` */
return $jsonModel;
} else {
return new ViewModel(...);
}
【问题讨论】:
-
嘿,我只是回到它,因为我也参与其中。你的问题到底是什么?当您返回 jsonModel(array($data)) 时,响应为 json。您不想在返回 json Oo 时呈现任何视图或任何内容
-
我需要在 JSON 响应中呈现部分视图。示例:
{"html":"<tr><td>I'm an HTML response</td></tr>"}.
标签: php json zend-framework2 zend-framework-mvc