Yii 模版引擎
来源:互联网 发布:树洞表白墙免费源码 编辑:程序博客网 时间:2024/06/15 14:21
Yii中没有模版引擎,本文主要介绍一下Yii渲染页面的原理和使用方法
使用方法篇
/** * 渲染示例 */public function actionRender(){ $this->text = 'Today is a good day'; Yii::app()->clientScript->registerCoreScript('jquery');//加载jquery $this->render('render', array('nick' => 'bennett'));//包含layout $this->renderPartial('render', array('nick' => 'bennett'));//不包含layout,但同时也不会引入jquery}
上面这个方法定义在PostController下,在未使用theme的时候会去
protected->views->post
文件夹下去找render.php
,在使用theme的情况下会优先去找theme对应文件夹下面的文件,如果找不到再去找protected下面的。
在view中可以直接调用Controller中的变量和通过render方法传递的变量<h3>Welcome <?php echo $nick; ?> <h3><p><?php echo $this->text; ?></p>
layouts的使用
在Yii自带的Controller中声明了一个属性public $layout='column2';
在未使用theme的情况下指定的是protected->views->layouts->column2.php
作为前端的layout
文件。在这个文件中往往是一些html的模版,其中包含了一句<?php echo $content; ?>
这个部分输出的就是Controller中渲染的view。
这个部分主要借助ob_start()
系列函数实现的,有兴趣的可以自行百度。加载css和js
Yii::app()->clientScript->registerCssFile(Yii::app()->baseUrl.'/css/my.css'); Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl.'/css/my.js',CClientScript::POS_END); Yii::app()->clientScript->registerCoreScript('jquery');
把上面的方法在Controller中调用即可。大家可以看到Yii加载jquery的方式不太一样,这个是因为Yii里面已经集成了jquery。接下来说下如何替换Yii中的jquery和解决js依赖。
在main.php中添加如下component
'clientScript' => array( 'scriptMap' => array( 'jquery.js' => 'http://libs.baidu.com/jquery/2.0.0/jquery.js', 'jquery.min.js' => 'http://libs.baidu.com/jquery/2.0.0/jquery.js',//替换系统的jquery ), 'packages'=>array(//自定义package 'jquery' => array( //'basePath'=>'alias of the directory containing the script files', 'baseUrl'=>'http://libs.baidu.com', 'js'=>array('/jquery/1.9.0/jquery.js'), //'css'=>array(list of css files relative to basePath/baseUrl), //'depends'=>array(list of dependent packages), ), 'jquery.ui'=>array( 'baseUrl'=>'http://libs.baidu.com', 'js'=>array('/jqueryui/1.8.22/jquery-ui.min.js'), 'depends'=>array('jquery'), ), 'bootstrap' => array( 'baseUrl'=>'http://libs.baidu.com', 'js'=>array('/bootstrap/3.0.3/js/bootstrap.min.js'), 'css'=>array('/bootstrap/3.0.3/css/bootstrap.min.css'), 'depends'=>array('jquery'), ), ), 'coreScriptPosition' => CClientScript::POS_END, ),
在上面的例子中看到我们自己定义了一些包,我们可以通过Yii::app()->clientScript->registerCoreScript('bootstrap');
来加载自定义的包,如果系统已经加载了这些文件,是不会重复加载的。
- Yii 模版引擎
- yii模版中的写法
- yii action $layout yii模版设置
- yii模版中的判断方法
- YII 自动生成实体模版
- ZParse javascript模版引擎
- CMS模版引擎介绍
- PHP EaseTemplate模版引擎
- 模版引擎FreeMarker
- Velocity模版引擎
- 动态模版引擎<使用方法>
- iOS 模版引擎 MGTemplateEngine
- js模版引擎。
- freemarker 模版引擎
- Smarty模版引擎
- Python 模版引擎
- js模版引擎介绍
- 前端模版引擎
- 【php】验证表单 邮箱
- 1. PermCheck Check whether array A is a permutation.
- qsort与sort的区别
- 电脑浏览器收藏夹中的记录如何恢复?
- 二维数组名作为实参或者形参
- Yii 模版引擎
- Caused by: java.lang.NullPointerException错误解析
- ZOJ 1006
- 《Thinking in Java》读书笔记之并发(五)
- 飞机大战开发04子弹与敌机的碰撞检测
- find命令中参数perm的用法
- oracle 用户之间访问的权限设置
- 【BZOJ 1925】【SDOI 2010】地精部落
- Python标准库urllib