是否可以在一個Action(或一組Actions)中設置佈局不渲染?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
));
}
}
如果你試圖返回JSON數據也有個'Zend的\ Diactoros \響應\ JsonResponse'。你可以這樣使用它:'return new JsonResponse($ dataArray);' – xtreamwayz
謝謝!但我需要返回HTML。在第一個請求(無ajax)中需要返回Layout + View,並且如果它是ajax請求只返回View,因爲我不想再次加載佈局。 – tasmaniski