layout布局文件 [ 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();?>
crowprince
注册时间:2016-10-31
最后登录:2018-03-06
在线时长:0小时29分
最后登录:2018-03-06
在线时长:0小时29分
- 粉丝3
- 金钱455
- 威望110
- 积分1555
共 0 条评论