到目前为止,我已经弄清楚了如何在 Zend Framework 2 中返回典型的 JSON 响应。首先,我在配置部分添加ViewJsonStrategy
了。然后,我不是从控制器操作返回一个实例,而是返回一个设置了所有变量的实例。strategies
view_manager
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(...);
}