入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

Yii对不同控制器下的视图进行渲染

创建时间:2017-01-10 投稿人: 浏览次数:916

关于不同Controller下使用不同样式的布局文件,比如有“用户”、“商品信息”、“商品列表”、“后台管理”四个子模块,每个模块的标题栏、菜单栏都不同,但是每个模块下的页面除了内容页,其余的标题栏、菜单栏、脚都一致,所以可以采用下面的方法进行。


在对应的控制器类中加入

class UserController extends Controller{
    //该控制器下的view文件夹下对应的视图文件,如果是render方法渲染,则使用一下的布局文件进行实现
public $layout = "//layouts/userLayout";
//其余代码
}

如果不想使用该控制器下的布局文件,可以用一下方法先制定需要渲染的视图名称,然后返回其进行调用

  $this->layout = "trainLayout";
  return  $this->render("rulesConfig");

则该控制器下的部分渲染的布局文件就是layouts文件夹下的targetRangeLayout.php文件, 因为Controller这个类中定义了$layout 如果不做此更改,默认的渲染的布局文件就是上面这个目录下的。

此外,制定该方法使用其他样式的布局文件方法,则是在该类的某个方法中添加如下语句:

$this->layout = ‘nameOfLayout’;//nameOfLayout是放在view/layouts文件夹下的布局文件

<?php
    class Controller extends CController{
        //该Controller下的函数每一个默认渲染的视图都是view-->layouts-->test.php
        public $layout = "//layouts/test";
        public function actionTest(){
        //$this->layout = false;//该方法不使用布局文件
        //不使用默认的test.php视图进行渲染,使用view-->layouts-->user.php
        $this->layout = "user";//
        return $this->render("test");
        }
    }
?>
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。