Rumah  >  Artikel  >  rangka kerja php  >  yii实现不加载layout布局文件

yii实现不加载layout布局文件

王林
王林asal
2019-12-24 14:00:532519semak imbas

yii实现不加载layout布局文件

Yii框架默认渲染模板的时候会渲染布局,新创建的项目也包含了3个默认的布局:main.phpcolumn1.phpcolumn2.php,并且默认创建了一个公共控制器Controller.php(在components目录下),默认的SiteController.php是继承的这个Controller.php,这个控制器指定了布局文件为column1.php。 

首先让我们看看渲染一个模板需要经过哪些步骤:

1、控制器中通过 $this->render('index')来开始渲染index.php视图文件;

2、在渲染index时,首先将index.php中的php脚本解析完毕,然后将解析的结果保存到$content变量里;

3、系统检查是否指定布局文件,先找控制器的$this->layout属性,如果这个值不为空的话,则再render()渲染这个布局文件,将$content值作为布局文件中的变量,也就是在布局文件中使用b8cb21d4be6121876b9b5e4bbf1ecc1f即可输出index.php里解析好的内容,而这个layout在Controller中默认指定为了column1.php,在这个布局里,又嵌套了项目默认的布局文件main.php。

4、如果控制器没有指定layout属性,则会去找项目配置中的layout属性,也就是main.php中的layout属性,而这个属性不需要人工指定,默认就是views/layouts/main.php文件。通过render解析这个布局文件,将index.php的内容作为$content变量穿进去。 

也就是说,按照默认情况,我们渲染一个视图需要渲染3个文件,分别是index.phpcolumn1.phpmain.php。 

对于不习惯布局模式的人来说,这无疑增加了麻烦。 

关闭方法:

不过关闭布局模式很简单,你可以将Controller中的 layout属性设置为false即可。

示例如下:

SiteController extends Controller{
 public $layout=false; //重写这个属性就可以了
//其他方法
}

相关文章教程推荐:yii教程

Atas ialah kandungan terperinci yii实现不加载layout布局文件. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:yii输入正确验证码提示错误Artikel seterusnya:yii2.0怎么打印sql语句