文档章节

Yii学习笔记:关闭layout,让layout见鬼去

吾爱
 吾爱
发布于 2013/11/26 23:47
字数 450
阅读 8398
收藏 4
Yii框架默认渲染模板的时候会渲染布局,新创建的项目也包含了3个默认的布局:main.php column1.php column2.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值作为布局文件中的变量,也就是在布局文件中使用<?php echo $content;?>即可输出index.php里解析好的内容,而这个layout在Controller中默认指定为了column1.php,在这个布局里,又嵌套了项目默认的布局文件main.php.


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


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


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


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

© 著作权归作者所有

吾爱
粉丝 142
博文 272
码字总数 91680
作品 0
后端工程师
私信 提问
加载中

评论(1)

弱水三千只取一些
多谢了,刚学习yii框架,自己琢磨了好一会儿,也没找到,多谢博主的提醒,顺便说一下,是yii2/base/下的Controller 中的 layout 成员的默认值!
Yii入门指导(二):Yii内功修炼

项目名称从“FantaCMS”修改成为“testyii”—————— 俗! 1,项目目录结构分析 2,Yii入口文件分析 在Yii启动项目时,传递了项目主配置文件数组,那么Yii会在整个应用中绑定一个全局的Y...

Koma
2014/10/21
1K
1
Yii之目录结构、入口文件及路由设置

本文从YII的目录结构开始分析,到入口文件分析,到路由设置详解,视图详解,十分全面的向我们展示了YII框架的方方面面,是篇非常不错的文章,这里推荐给大家。 项目名称从“FantaCMS”修改成...

梦梦阁
03/01
15
0
Yii 2—— layout查找顺序

1.1 layout查找顺序 在应用中添加了一个模块,但是还没有给模块添加layouts,结果发现页面还是可以正常显示,只是layout用的是应用级的layout,有点好奇,于是跟了下代码,在yii2baseControl...

tywali
2018/06/29
0
0
kzeng_jack/yii2-cms

Yii2 CMS 一款基于YII2框架的内容管理系统 安装 安装Yii2 CMS 通过Git安装 `bashcd /var/www/git clone https://git.oschina.net/kzeng/yii2-cms.git mysite.com` 初始化 执行 命令,然后选择...

kzeng_jack
2017/06/02
0
0
Yii2中如何将Jquery放在head中的方法

今天在写一个扩展,扩展中要求,扩展中可以任意地方输出jquery代码,那么jquery就必须在head中首先加载。 大家都知道Yii2中的assets js资源都是在末尾加载的,看了下文档,有几种方法,简单记...

卖小女孩的小火柴
2015/12/18
2.2K
1

没有更多内容

加载失败,请刷新页面

加载更多

cpu load过高问题排查

load average的概念 top命令中load average显示的是最近1分钟、5分钟和15分钟的系统平均负载。 系统平均负载被定义为在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少进程)的平均进程...

mskk
17分钟前
3
0
用spring boot 实现websocket

import java.io.IOException;import javax.websocket.OnClose;import javax.websocket.OnError;import javax.websocket.OnMessage;import javax.websocket.OnOpen;import java......

jingshishengxu
27分钟前
2
0
shell介绍,命令历史,命令补全和别名,通配符,输入输出重定向,管道符和作业控制

shell介绍 可以使用 yum list |grep zsh 或者 yum list |grep ksh 这样可以搜索 zsh 和 ksh ,有需要的话可以安装 总之,默认使用的就是 .bash shell 命令历史 输入过的命令会被保存在一个文...

doomcat
44分钟前
7
0
1995年的资深工程师,和你谈谈如何进阶

1995年的资深工程师,和你谈谈如何进阶 自我介绍 网络ID:杭城小刘,城市:顾名思义,人在杭州。1995年出生,本科毕业,现在是一名 iOS 资深工程师,年薪 35w。兴趣爱好广泛:乒乓球、美食、...

杭城小刘
今天
10
0
Kafka 面试题

1.Kafka中的ISR、AR代表什么? ISR:与leader保持同步的follower集合 AR:分区的所有副本 2.Kafka中的HW、LEO分别代表什么? LEO:每个副本的最后条消息的offset HW:一个分区中所有副本最小...

GrayWorld
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部