これまで、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(...);
}