PHP - Lithium framework如何更改/切换默认布局

时间:2013-06-04 18:29:54

标签: php lithium

在PHP Lithium中,如何更改默认布局?我有两种不同视图的布局,我想在不同的视图中切换它们,我该如何实现呢?

感谢。

1 个答案:

答案 0 :(得分:6)

切换控制器中的布局。因此,当您在控制器中完成后,您可以通过这种方式调用渲染。

return $this->render(array('layout' => 'someFancyLayout'));

您还应该能够在控制器中执行此操作。我不确定,但您可能需要扩展Controller以使用这种方式。

 $this->_render['layout'] = 'someFancyLayout';

请注意,您还可以设置自定义媒体处理程序。这例如在请求GPX文件时使用,在这种情况下我不使用布局。

Media::type('gpx', 'application/text', array(
    'view' => 'lithium\template\View',
    'layout' => false,
    'template' => false
));

您还可以使用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);
});