crowprince 2016-08-04 19:37:49 7067次浏览 0条评论 2 2 0

原文:http://blog.csdn.net/lx_96/article/details/52122168
1.配置布局变量:
1.1Controller里面定义布局变量

1.直接加一个公有变量public $layout = '路径'。(默认是当前控制器目录下的views目录下的 layouts文件夹)

如果只想在某个action中改变布局,那么变量就设置在action中

2.或者通过控制器的inint()方法设置该变量
1.2Mudule(模块)中定义布局变量。直接在其(如:AdminModule.php)init()方法里面定义$layout变量的值
如何写layout变量的值:
其有三种:1.false:不使用布局文件($layout=false;)
2.null,使用Module中定义的布局文件
3.自负串:制定布局文件。其字符串的形式如下:

3.1、别名开头,制定布局文件路径(@app/Module/admin/views/ayouts/main)

3.2、/开头,指定app下面的views里面的layouts文件夹下的布局文件

3.3、直接使用布局文件的名字如:'main',则表示使用Module下的布局文件

此三种路径写法的源码如下:

if (strncmp($layout, '@', 1) === 0) {  
    $file = Yii::getAlias($layout);  
} elseif (strncmp($layout, '/', 1) === 0) {  
    //echo Yii::$app->getLayoutPath() . DIRECTORY_SEPARATOR;exit();  
    $file = Yii::$app->getLayoutPath() . DIRECTORY_SEPARATOR . substr($layout, 1);  
} else {  
    $file = $module->getLayoutPath() . DIRECTORY_SEPARATOR . $layout;  
}  

2.查找布局文件的原理:

2.1、先看当前controller里面有没有定义布局文件

2.2、如果没有,查找所在Module里面有没有定义布局文件

2.3、查找父级Module里面有没有定义布局文件
3.布局文件的嵌套使用
在views布局文件里面的使用如下:

<?php $this->beginContent('@app/views/layouts/main.php');?>//必须加.php  
<?php echo $content;?>  
<?php $this->endContent();?>  

原文:http://blog.csdn.net/lx_96/article/details/52122168

觉得很赞
    没有找到数据。
您需要登录后才可以评论。登录 | 立即注册