使用yii的layout,加入<?php echo $content; ?>这句话时,它会自动在子页面上面添加一个div包裹
来源:互联网 发布:java入门自学书籍推荐 编辑:程序博客网 时间:2024/04/30 01:58
使用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包裹
- 在页面添加一个透明Layout
- 在页面添加一个透明Layout
- 在div里实现它的一个子div定宽,而另一个子div获取剩下的宽度
- 在一个方法里生成了一个自动释放的数组,在另一个方法里使用它会导致程序崩溃。
- html 在php中echo html 时引号的使用
- 在UIWebView 上面添加一个头视图 让它能随webView 滚动
- TextInputLayout是一个能够把EditText包裹在当中的一个布局,当输入文字时,它可以把Hint文字飘到EditText的上方。
- yii在Linux上面碰到的问题
- ie 要在子页面中向最顶层的页面添加一个dom对象
- div里面加上ul li 后,这个div与它上面的那个div之间就会出现一小段空白
- 使用easyUI创建一个border layout在你的web页面
- ActivityGroup的使用代码将子activty 的layout加入到主activity中
- 如何在SVN上面添加一个新项目
- urllib2-addheaders(在 HTTP Request 中加入特定的 Header,Content-Type用 REST 接口时,服务器会检查该值,用来确定 HTTP Body 中的内容)
- 在ASP.NET AJAX中,由于一个ASPX页面上只能有一个ScriptManager控件,所以在有母版页的情况下,如果需要在Master-Page和Content-Page中需要引入不同的脚本时,这就需要在Content-page中使用ScriptMa
- 在一个div上添加另外一个div:例如在一个div的左上角添加一个logo
- 用OpenXml在文档的尾部添加一个Rich Text Content Control/Plain Text Content Control
- Matlab中fscanf的用法
- 多语言支持
- linux/win重置mysql的root密码
- 【设计模式:单例模式】使用单例模式加载properties文件
- MFC中输出TRACE宏
- 使用yii的layout,加入<?php echo $content; ?>这句话时,它会自动在子页面上面添加一个div包裹
- 深入理解vector list deque——存储结构机理
- 解决访问本地Android文档很慢的问题
- c++容器(vector、list、deque)
- strlen和sizeof的区别,以及extern的用法
- wildfly/jboss修改支持外网访问
- 我想寻求一段上传下载代码(功能多点)。
- 二叉树
- Step by Step Camera Pose Estimation for Visual Tracking and Planar Markers