
记录一次关于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);