Возможно ли установить макет без рендера в одном действии (или множестве действий)?Макет без рендеринга на некоторые действия в Zend Expressive?
Как я знаю, я могу установить макет по умолчанию в config, , который будет отображаться на каждой странице. Я могу изменить его в Action bay, передавая переменную 'layout' со значением, , но разве можно вообще не отображать макет?
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 \ Response \ JsonResponse'. Вы используете его следующим образом: 'return new JsonResponse ($ dataArray);' – xtreamwayz
Спасибо! Но мне нужно вернуть HTML. В первом запросе (без ajax) необходимо вернуть Layout + View, и если это ajax-запрос для возврата только View, потому что я не хочу снова загружать макет. – tasmaniski