1つのアクション(または一連のアクション)でレイアウトをレンダリングしないように設定できますか?Zend Expressiveのいくつかのアクションでレイアウトがレンダリングされませんか?
私が知っているように、すべてのページでレンダリングされる という設定のデフォルトレイアウトを設定できます。 値が「layout」変数 を渡してAction Bayで変更することはできますが、レイアウトを全くレンダリングできないのですか? Zendの表現で
class IndexAction
{
private $template;
public function __construct(Template $template){ ... }
public function __invoke($request, $response, $next = null)
{
if(!$request->hasHeader('X-Requested-With')){
$data = ['layout' => 'new\layout']; //change default layout to new one
}
else{
$data = ['layout' => false]; //I need only to return view ?
}
return new HtmlResponse($this->template->render(
'web::index', $data
));
}
}
偽だけで設定したレイアウト=利用可能です 'Zendの\ Diactoros \レスポンス\ JsonResponse'もあります。あなたは次のように使います: 'return new JsonResponse($ dataArray);' – xtreamwayz
ありがとう!しかし、私はHTMLを返す必要があります。最初のリクエスト(ajaxなし)では、Layout + Viewを返す必要があり、レイアウトを再度ロードしたくないため、Viewだけを返すようリクエストした場合は必要です。 – tasmaniski