使用yii的layout,加入<?php echo $content; ?>这句话时,它会自动在子页面上面添加一个div包裹
使用yii的layout,加入<?php echo $content; ?>这句话时,它会自动在子页面上面添加一个div包裹,而且div的id命名为id=content,这个和已有id重复,如何解决?
http://hi.baidu.com/jyhscy/item/2b05034c9d9f1e35fb8960d1
yii中layout的column和main文件之间的关系
在yii创建应用成果之后,在view/layouts/目录下,会产生3个布局页面:
-->main.php
-->column1.php
-->column2.php
由于首次使用的是命令行Shell方式创建的应用,yii本身会创建一个控制器组件:Controller.php,它继承了CController控制器,该文件位于/components目录下:
+++++++++++++++++++++++++++++++++++++++++++
<?php
class Controller extends CController
{
public $layout='//layouts/column1';
public $menu=array();
public $breadcrumbs=array();
}
?>
+++++++++++++++++++++++++++++++++++++++++++
文件里设置了layout的默认页面为: ‘//layouts/column1′,然后再view/layouts/中,column1再次调用main.php视图文件:
+++++++++++++++++++++++++++++++++++++++++++
<?php $this->beginContent('//layouts/main'); ?>
<div id="content">
<?php echo $content; ?>
</div><!-- content -->
<?php $this->endContent(); ?>
+++++++++++++++++++++++++++++++++++++++++++
加载完main.php文件之后,在包含index.php中的内容即$content中的内容.
如果控制器都是由Gii这个脚手架自动生成,那么所有的控制器都会继承都是继承于Controller而非官方所说的继承与CController控制器,在页面视图渲染,多了一层column1.php中间视图.
所以说yii在 $this->render(‘index’) 一个页面的时候,使用 column1.php 包含 main.php,再由 main.php 包含 index.php,最后返回内容.(这是针对于继承Controller方式)。
而至于column2.php只干什么的呢,貌似是个打酱油的,没有用到。
如果我们想更改默认的layout视图文件,要么直接在Components/Controller.php更改$layout = ‘//layouts/newlayout_name‘,要么控制器继承时,直接 extends CController 而不是Controller,然后配置config/main.php:
++++++++++++++++++++++++++++++++++++++++++++
return array(
………………
'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
'name'=>'web application',
'layout'=>'newlayout_name'
………………
)
+++++++++++++++++++++++++++++++++++++++++++++
然后在控制器里调用:
+++++++++++++++++++++++++++++++++++++++++++++
//TestController为自定义一个测试控制器,直接继承CController,默认是继承controller
class TestController extends CController{
………………
}
++++++++++++++++++++++++++++++++++++++++++++++
当然也可以直接在控制器里设置layout属性,覆盖默认的layout,使得视图渲染更灵活.此处只是为说明 /view 下layouts/中,main.php和column1.php,以及index.php之间的关系.
++++++++++++++++++++++++++++++++++++++++++++++
//直接在controller中如下覆盖设置layout
public $layout='//layouts/newlayout_name';
++++++++++++++++++++++++++++++++++++++++++++++
因此,只需要打开column1.php,把里面的div修改下就ok
使用yii的layout,加入<?php echo $content; ?>这句话时,它会自动在子页面上面添加一个div包裹的更多相关文章
- leyer不写content参数直接传递给子页面数据
function btnAddClickownfund(){ //获取数据 var actual = $("#actual_capitals").html().trim(); // ...
- 关于YII中layout中的布局和view中数据的关系
1. view中解释php脚本后显示出的内容会在layout中以<?php echo $content?>输出. 2. view是对应的controller的实例,所以可以通过$this- ...
- eclipse发布项目时,会自动还原server.xml和content.xml文件
因为Tomcat的端口冲突,导致eclipse发布项目时,失败.于是到server.xml文件中修改端口,重启使用eclipse发布项目,发现依然报端口冲突的错误,其原因时,刚才对server.xml ...
- Yii 1.1.17 五、分页类、关联模型、权限验证与默认页面跳转
一.分页类使用 1.在控制器中 // 实例化 $criteria = new CDbCriteria(); $articleModel = Article::model(); // 分页 $total ...
- Jquery.Qrcode在客户端动态生成二维码并添加自定义Logo
0 Jquery.Qrcode简介 Jquery.Qrcode.js是一个在浏览器端基于Jquery动态生成二维码的插件,支持Canvas和Table两种渲染方式,它的优点是在客户端动态生成,减轻了服 ...
- Windows Store App JavaScript 开发:模板绑定
WinJS库模板提供了一种格式化显示多条数据的便捷方式,通过这种方式可以将模板与ListView或FlipView等控件结合使用以控制数据的显示格式.定义一个WinJS库模板的方法与定义WinJS库控 ...
- iOS学习——页面的传值方式
一.简述 在iOS开发过程中,页面跳转时在页面之间进行数据传递是很常见的事情,我们称这个过程为页面传值.页面跳转过程中,从主页面跳转到子页面的数据传递称之为正向传值:反之,从子页面返回主页面时的数据传 ...
- 体验jQuery和AngularJS的不同点以及AngularJS的迷人之处
本篇通过jQuery和Angular两种方式来实现同一个实例,从而体验两者的不同点以及AngularJS的迷人之处. 首先当然需要引用jquery.js和angular.js文件. ■ 使用jQuer ...
- Win10系列:JavaScript 模板绑定
WinJS库模板提供了一种格式化显示多条数据的便捷方式,通过这种方式可以将模板与ListView或FlipView等控件结合使用以控制数据的显示格式.定义一个WinJS库模板的方法与定义WinJS库控 ...
随机推荐
- vue+SSM验证码实现
源码:https://github.com/HannahLihui/StudentManager-SSM/tree/master/SSM-git/StudentManager-SSM-master 1 ...
- tcpcopy架构
tcpCopy 1.0 的最新架构分为三个角色: Online Server(OS):上面要部署 TCPCopy,从数据链路层(pcap 接口)抓请求数据包,发包是从IP层发出去: Test Serv ...
- 针对多类型数据库,集群数据库的有序GUID
一.背景 常见的一种数据库设计是使用连续的整数为做主键,当新的数据插入到数据库时,由数据库自动生成.但这种设计不一定适合所有场景. 随着越来越多的使用Nhibernate.EntityFramewor ...
- Java8简明学习之新时间日期API
由于历史原因,在之前的版本里无论Date还是Calendar都非常难用,尤其在涉及到日期计算方面,而且其中日期转换的类DateForamt还是非线程安全的.也正因为难用,一般项目里面都引入第三方的类库 ...
- 通过UA判断,对滚动条样式进行不同的操作
浏览器滚动条的默认样式比较丑,有些情况下,又不能直接overflow:hidden掉. 本文阐述如何通过 document.styleSheets[0].insertRule 简单的实现pc端和移动端 ...
- JavaSE——转换流和缓冲流
转换流: 类 InputStreamReader(字符输入转换流): InputStream 即读取字节流,Reader 为读取字符流. InputStreamReader将字节流转换成字符流.便于一 ...
- PowerDesigner 常用配置修改
PowerDesigner中Name与Code同步的问题 转自:http://blog.sina.com.cn/u/48932504010005t9 PowerDesigner中,但修改了某个字段的n ...
- 全平台 Chrome 浏览器 44.0.2403.89 版本下载
全平台 Chrome 浏览器 44.0.2403.89 版本发布 详细更新日志请参见:https://chromium.googlesource.com/chromium/src/+log/43.0. ...
- ios虚拟机安装 (三)
安装mac系统出现欢迎使用的界面-->一直继续(个人设定) 点击左上角-->Dock-->启动放大 Safari 浏览器
- 生成项目目录结构(based on windows system)
描述: 作为程序员,在工作中,我们经常会有需求,需要罗列出项目的结构图:如果手工来整理的话,太过浪费时间,其实我们可以借助tree命令来快速生成目录结构. 本文主要介绍一下,基于windows系统,如 ...