1. Yii Framework] 如何获取当前controller的名称?
下面语句就可以获取当前控制器的名称了!
Php代码
Yii::app()->controller->id
2. yii 如何使用第三方插件
第一,比如说,我们要使用 Zend framework的东西。我们把zend framework解压到 prtected/vendors里面,现在的文件夹为 protected/vendors/Zend/Search/Lucene.php
第二,在controller文件的头部,插入下面代码。
Yii::import('application.vendors.*');
require once('Zend/Search/Lucene.php');
上面代码包含了Lucene.php这个类文件。因为我们用到的是相对路径,所以我们需要改变PHP加载文件的路径,Yii::import 一定要在require_once 之前。
第三,一旦我们设置好了,我们就可以在controller里面使用了。比如说
$lucene=new Zend Search Lucene($pathOfIndex);
$hits=$lucene->find(strtolower($keyword));
3. yii中如何在查询的时候使用数据库函数
比如要使用mySQL中的md5函数,
Test::model()->findAll(new CDbExpression("md5(name) =1"));
4. yii的controller中外挂action
创建
Php代码
class UpdateAction extends CAction {
public function run() {
// place the action logic here
}
}
调用
Php代码
class PostController extends CController {
public function actions() {
return array( 'edit'=>'application.controllers.post.UpdateAction', );
}
}
5. Yii创建widget
Php代码
class MyWidget extends CWidget {
public function init() {
// this method is called by CController::beginWidget()
}
public function run() {
// this method is called by CController::endWidget()
}
}
通常,widget的视图是是放在components/views里面的,通过CWidget::render()来传递参数的
6. CWidget::init()与CWidget::run()的联系
要创建一个新的挂件(widget),我们主要是要继承两个方法:CWidget::init()和 CWidget::run(),
CWidget::init 调用是发生在我们使用 $this->beginWidget 将挂件插入到一个view里面,
CWidget::run 调用是发生在我们使用 $this->endWidget 这个方法的时候。
如果我们想捕捉和处理两者之间的方法核查办上显示的内容,我们可以在CWidget::init开始输出缓冲,然后在CWidget::run中检索缓冲输出
并作进一步处理。
7. Yii如何使用theme
在main.php 里面配置
return array(
'theme'=>'basic',
//......
);
要使用theme里面的资源的话,比如说images, js, css, 应该这样, Yii::app()->theme->baseUrl.”/images/FileName.gif”
Yii::app()->Theme->baseUrl.”/css/default/common.css”
8.Yii 如何在当前页面注册css和js文件
$cs=Yii::app()->clientScript;
$cs->registerCssFile($cssFile);
$cs->registerScriptFile($jsFile);
9.Yii Captcha验证码的使用方法
假设使用的model名字为Comment
Model里面
Php代码
public function rules() {
return array(
......
array('verifyCode',
'captcha',
'on' => 'insert',
'allowEmpty' => !Yii::app()->user->isGuest || !extension_loaded('gd')),
);
}
View里面
Controller里面
public function xyz() {
$comment = new Comment;
$comment->validate('insert');
//因为是insert的时候才会用到captcha,所以要加上参数'insert'
}
10. 如何调用extension扩展
Components的方法
引入以及定义:
在config.php文件里面
Php代码
'components'=>array(
'xyz'=>array(
'class'=>'ext.xyz.XyzClass',
'property1'=>'value1',
'property2'=>'value2',
),
// other component configurations
),
使用方法:
在任何地方,使用Yii::app()->xyz,就可以直接使用xyz这个component了,而component的加载方式是 lazilycreated的,只要我们不是在preload=array()里面定义,那么就是,当第一次使用的时候,才会实例化的,所以不用担心说把 它放在config.php里面会影响性能。
11. Yii 数据保存时自动插入createTime和updateTime
Yii 1.1 version之后,可以直接这样:
Php代码
public function behaviors(){
return array(
'CTimestampBehavior' => array(
'class' => 'zii.behaviors.CTimestampBehavior',
'createAttribute' => 'create_time_attribute',
'updateAttribute' => 'update_time_attribute',
)
);
}
如果model里面已经在使用public function behaviors(),记得要在前面加上parent::behaviors($on);
12. Yii 数据库查询找出最新5个发布的内容
在数据查询的时候,出现下面的是什么意思?
$posts=Post::model()->published()->recently()->findAll();
这个是叫做named scope,
每个命名范围被声明为一个可以被用来初始化CDbCriteria阵列实例。
如要下面的例子
Php代码
class Post extends CActiveRecord {
......
public function scopes() {
return array(
'published'=>array(
'condition'=>'status=1',
),
'recently'=>array(
'order'=>'createTime DESC',
'limit'=>5,
),
);
}
}
而$posts=Post::model()->published()->recently()->findAll();的意思就是找出最新的status为1的post的5条记录
13. 在views里面如何调用本controller的方法,获取一定的值
直接在views里面使用$this->method(),如
controller里面:
Php代码
class PostController extends Ccontroller {
public function actionList(){....}
public function getTitle(){return 'test title';}
}
views的list.php
getTitle();?>
这样就可以调用本controller的方法了
14. Yii framework已经定义的命名空间常量
system: Yii framework directory
application: application's base directory
webroot: the directory containing the entry script file
ext: directory of extensions
system: 指向 Yii 框架目录;
zii: 指向 zii library 目录;
application: 指向应用程序 基本目录(base directory);
webroot: 指向包含里 入口脚本 文件的目录. 此别名自 1.0.3 版起生效.
ext: 指向包含所有第三方扩展的目录, 从版本 1.0.8 可用;
15. yii中如何不加载layout
可以使用renderPartial()来代替render()
16. yii中向widget传值
$this->widget('CMaskedTextField',array('mask'=>'99/99/9999'));
分享到:
相关推荐
Yii Framework API手册 英文原版
yii framework框架 + yii app模板(基本、高级)
Yii Framework 1.1.6 框架
Yii Framework是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。
yii framework 中文完全手册
Yii是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。
从 MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主题化,I18N和L10N,Yii提供了今日Web 2.0应用开发所需要的几乎一切功能。事实上,Yii是最有效率的PHP框架之一。 Yii是一个高性能的PHP5的...
yii framework 1.1.14 chm文档,从官方html文档编译,展示效果很好.
PhpStorm6 创建yii framework项目全过程。
Yii Framework 1.10的API手册
YiiFramework 最新最完善的YII框架
yii framework 最全最新的中文手册
Yii Framework 2.0 Where条件拼接 pdf 应该囊括 了大部分的查询示例,like ,not,...
Yii Framework 2.0 权威指南 pdf格式 中文高清离线版 有书签
yiiframework 纯中文手册 在官网的基础上翻译的更全面 更详细
PHP实例开发源码—Yii Framework php框架.zip PHP实例开发源码—Yii Framework php框架.zip PHP实例开发源码—Yii Framework php框架.zip
Yii Framework v1.1.10类参考中文手册
Yii Framework简介 Yii是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的...
2019年最近整理的YII Framework 2.0权威指南文档。在这里上伟希望能帮到大家。可以方便的在手机上,或没有网络的地方查看学习。
基于yii framework 商城,开源 php