您在控制器中切换布局.因此,当您在控制器中完成后,您可以通过这种方式调用渲染.
return $this->render(array('layout' => 'someFancyLayout'));
Run Code Online (Sandbox Code Playgroud)
您还应该能够在控制器中执行此操作.我不确定,但您可能需要扩展Controller以使用这种方式.
$this->_render['layout'] = 'someFancyLayout';
Run Code Online (Sandbox Code Playgroud)
请注意,您还可以设置自定义媒体处理程序.这例如在请求GPX文件时使用,在这种情况下我不使用布局.
Media::type('gpx', 'application/text', array(
'view' => 'lithium\template\View',
'layout' => false,
'template' => false
));
Run Code Online (Sandbox Code Playgroud)
你也可以通过renderer电话过滤器来做到这一点:
Media::applyFilter('render', function ($self, $params, $chain) {
$params['options']['layout'] = 'default';
if (someCondition == isMet) {
$params['options']['layout'] = 'anotherLayout';
}
return $chain->next($self, $params, $chain);
});
Run Code Online (Sandbox Code Playgroud)