これまで、Zend Framework 2で一般的なJSON応答を返す方法を理解しました。最初に、構成ViewJsonStrategy
のstrategies
セクションにを追加しました。view_manager
次に、ViewModel
コントローラーアクションからインスタンスを返す代わりにJsonModel
、すべての変数が設定されたインスタンスを返します。
その部分を理解したので、ビューをレンダリングしてそのJSON応答内に返す方法を理解する必要があります。ZF1では$this->view->render($scriptName)
、HTMLを文字列として返すを使用できました。ZF2では、Zend\View\View::render(...)
メソッドはを返しますvoid
。
では、HTMLビュースクリプトをレンダリングして、1つのリクエストで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(...);
}