关于不同Controller下使用不同样式的布局文件,比如有“用户”、“商品信息”、“商品列表”、“后台管理”四个子模块,每个模块的标题栏、菜单栏都不同,但是每个模块下的页面除了内容页,其余的标题栏、菜单栏、脚都一致,所以可以采用下面的方法进行。
1. 第一步
在对应的控制器类中加入
class UserController extends Controller{
public $layout = '//layouts/userLayout';
}
2. 第二步
如果不想使用该控制器下的布局文件,可以用一下方法先制定需要渲染的视图名称,然后返回其进行调用
$this->layout = 'trainLayout';
return $this->render('rulesConfig');
则该控制器下的部分渲染的布局文件就是layouts文件夹下的targetRangeLayout.php文件, 因为Controller这个类中定义了$layout 如果不做此更改,默认的渲染的布局文件就是上面这个目录下的。
此外,制定该方法使用其他样式的布局文件方法,则是在该类的某个方法中添加如下语句:
$this->layout = ‘nameOfLayout’;
完成!
例子:
<?php
class Controller extends CController{
public $layout = '//layouts/test';
public function actionTest(){
$this->layout = 'user';
return $this->render('test');
}
}
?>