До сих пор я выяснил, как вернуть типичный ответ JSON в Zend Framework 2. Сначала я добавил раздел ViewJsonStrategy в strategies конфигурации view_manager. Затем вместо того, чтобы возвращать экземпляр ViewModel из действия контроллера, я возвращаю экземпляр JsonModel со всеми моими переменными.
Теперь, когда я вычислил эту часть, мне нужно понять, как визуализировать представление и вернуть его в этом ответе JSON. В ZF1 я смог использовать $this->view->render($scriptName), который вернул HTML в виде строки. В ZF2 метод Zend\View\View::render(...) возвращает void.
Итак... как я могу отобразить HTML-представление script и вернуть его в ответ 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(...);
}