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

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即可。

时间: 2024-11-08 23:51:18

Yii学习笔记:关闭layout,让layout见鬼去的相关文章

(yii学习笔记)控制器权限控制

public function filters() { return array( 'accessControl', // per 'postOnly + delete', // ); } public function accessRules() { return array( array('allow', // allow all users to pe 'actions'=>array('index','view'), 'users'=>array('*'), ), array('all

yii学习笔记(在控制器访问别的类方法)

在当前控制器定义一个actions的方法 public function actions() { return array( // 'captcha'=>array( 'class'=>'CCaptchaAction', 'backColor'=>0xFFFFFF, ), // // 'page'=>array( 'class'=>'CViewAction', ), ); } function actions(){ return array( 'captcha'=>ar

关于格子之让暗恋见鬼去吧

碟说第119期:<让暗恋见鬼去吧> 优酷视频在线观看.表白一定要趁早,不然你就要像<那些年我们追过的女孩>中的柯景腾那样,只能在婚礼上亲吻沈佳宜的新郎了.那些年,你为暗恋做过哪些傻事?上课时眼神总是止不住的瞄向ta:放学路上总是想制造偶遇跟ta一起回家,有木有? <让暗恋见鬼去吧>背景音乐BGM汇总:开头英文:home-Michael buble   中间钢琴曲: 1分30左右的是 Ldy Lickem 的<When I Wake Up> 结尾:<奏(

APIJSON,让接口见鬼去吧!

我: https://github.com/TommyLemon/APIJSON 服务端: 什么鬼? 客户端: APIJSON是啥? 我: APIJSON是一种JSON传输结构协议. 客户端可以定义任何JSON结构去向服务端发起请求,服务端就会返回对应结构的JSON字符串,所求即所得. 一次请求任意结构任意数据,方便灵活,不需要专门接口或多次请求. 还能去除重复数据,节省流量提高速度! 从此HTTP传输JSON数据没有接口,更不需要文档! 客户端再也不用和服务端沟通接口或文档问题了!再也不会被文

【转】APIJSON,让接口见鬼去吧!

我: APIJSON,让接口和文档见鬼去吧! https://github.com/TommyLemon/APIJSON 服务端: 什么鬼? 客户端: APIJSON是啥? 我: APIJSON是一种JSON传输结构协议. 客户端可以定义任何JSON结构去向服务端发起请求,服务端就会返回对应结构的JSON字符串,所求即所得. 一次请求任意结构任意数据,方便灵活,不需要专门接口或多次请求. 支持增删改查.模糊搜索.远程函数调用等.还能去除重复数据,节省流量提高速度! 从此HTTP传输JSON数据没

yii学习笔记

1.安装yii 2.创建站点: D:\AppServ\www\yii\framework>d:/xampp/php/php.exe yiic webapp ../../ys2 Create a Web application under 'D:\AppServ\www\ys2'? (yes|no) [no]:yes 1.创建控制器:在protected 下面的controller中创建名为IndexController.php的文件: <?php class IndexController e

yii学习笔记(实时更新)

1.yii分为basic(基础应用)和advanced(高级应用)两个版本,basic版本结构简单(适合学习框架或者适合只写一个应用),advanced版本分两个应用 一个叫frontend(前台) backend(后台,每个应用(App)就类似basic,适合学过yii的. 2.配置多个数据库连接: 安装玩应用后,打开config/web.php,$config数组的components下有'db' => require(__DIR__ . '/db.php')引入数据库配置数组: retur

Yii学习笔记之六(HTML生成帮助类api 翻译)

html帮助类 (Html helper) 参考地址:http://www.yiiframework.com/doc-2.0/guide-helper-html.html 每一个web应用都会生成许多的HTML 标签,如果标签是静态的,他就能有效的避免PHP代码和HTML之间的混淆:但是当它是动态生成,它就开始变得棘手处理,不过它无需额外的帮助下完成.Yii 提供了这样的辅助 在一个form 提供了一系列静态的方法来处理生成 HTML标签组件, 以及他们的选项和内容. 提示: 入过你的标签是静态

Yii学习笔记之四(表单验证 api 翻译)

1.表单验证 对于用户输入的所有数据,你不能信任,必须加以验证. 所有框架如此,对于yii 可以使用函数 yii\base\Model::validate()  进行验证 他会返回boolean值的 true /false 如果验证未通过,可以使用 yii\base\Model::$errors 属性进行处理,如下代码: <?php //加载表单模型(绝对地址方式) /*如果上面引入 use app\models\ContactForm; 则可以直接使用 $model = new Contact