До сих пор я выяснил, как вернуть типичный ответ 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(...);
}