render(‘helloWorld’,array(‘time’=>$theTime)); 视图中: YII默认控制器 …”>

Ourren

关注技术,记录生活.

关于YII的一些技术笔记

| 留言

YII

记录一次关于YII编程的相关技术笔记。

传值问题

如何通过控制器向视图传值:

控制器中:

$theTime=date("D M j G:i:s T Y");
$this->render('helloWorld',array('time'=>$theTime));

视图中:

YII默认控制器 配置文件 application/config/main.php修改,指定 defaultController即可, 如 'defaultController' => 'home',

输入前判定

有时候需要在操作某些工作前判定另外的模型是否存在,需要采用filters函数来实现:

public function filters()
    {
        return array(
            'accessControl', //perform access control for CRUD operations
            'projectContext + create', //check to ensure valid project context
                                       // + 表示只在某些操作上判定,-表示除了该操作其他都判定
            );
    }

常用函数

CHtml::link()

 CHtml::link("Hello",array('message/helloWorld'));
 array('label'=>'Create Issue', 'url'=>array('create', 'pid'=>1)),//另外一种链接方式

updateByPk():直接更新某个字段的值(name=>value 键值对) User::model()->updateByPk($this->identity->id, array(‘lastlogin_time’ => new CDbExpression(‘NOW()’)));

唯一性

有时候需要判定用户名和邮箱唯一,需要在rules()中添加如下代码:

array('username,email', 'unique');

安全性

CDbCriteria 操作数据库的时候需要使用params方式,否则也存在注入等问题。

    $scriteria = new CDbCriteria;
    $scriteria->condition='tags=:tags';
    $scriteria->params=array(':tags'=>$news->tags);