最新消息: 新版网站上线了!!!

yii使用总结

1、插入meta信息

Yii::app()->clientScript->registerMetaTag('keywords','关键字');
Yii::app()->clientScript->registerMetaTag('description','一些描述');

2、如何防止重复提交?

提交后写上$this->refresh()

3、成功或者失败页面给出提示

控制器中:

Yii::app()->user->setFlash('error','出错了');
$this->refresh();

view中:

if(Yii::app()->user->hasFlash('error')){
    echo Yii::app()->user->getFlash('error');
}

4、这是Yii CDbCriteria的一些笔记和常用用法

 

01. $criteria = new CDbCriteria;      

 

02. $criteria->addCondition("id=1"); //查询条件,即where id = 1  

 

03. $criteria->addInCondition('id', array(1,2,3,4,5)); //代表where id IN (1,23,,4,5,);  

 

04. $criteria->addNotInCondition('id', array(1,2,3,4,5));//与上面正好相法,是NOT IN  

 

05. $criteria->addCondition('id=1','OR');//这是OR条件,多个条件的时候,该条件是OR而非AND  

 

06. $criteria->addSearchCondition('name', '分类');//搜索条件,其实代表了。。where name like '%分类%'  

 

07. $criteria->addBetweenCondition('id', 1, 4);//between 1 and 4   

 

08.   

 

09. $criteria->compare('id', 1);    //这个方法比较特殊,他会根据你的参数自动处理成addCondition或者addInCondition,  

 

10.                                 //即如果第二个参数是数组就会调用addInCondition  

 

11. /** 

 

12.  * 传递变量 

 

13.  */  

 

14. $criteria->addCondition("id = :id");  

 

15. $criteria->params[':id']=1;  

 

16. /** 

 

17.  * 一些public vars 

 

18.  */  

 

19. $criteria->select = 'id,parentid,name'; //代表了要查询的字段,默认select='*';  

 

20. $criteria->join = 'xxx'; //连接表  

 

21. $criteria->with = 'xxx'; //调用relations   

 

22. $criteria->limit = 10;    //取1条数据,如果小于0,则不作处理  

 

23. $criteria->offset = 1;   //两条合并起来,则表示 limit 10 offset 1,或者代表了。limit 1,10  

 

24. $criteria->order = 'xxx DESC,XXX ASC' ;//排序条件  

 

25. $criteria->group = 'group 条件';  

 

26. $criteria->having = 'having 条件 ';  

 

27. $criteria->distinct = FALSE; //是否唯一查询  

注意:主表的默认别名是t,创建where条件尽量用compare

5、获取上一页的url

Yii::app()->request->urlReferrer;

6、获取域名

Yii::app()->request->hostInfo;

一些相关的request的方法都在这里,具体查看手册,只是提供思路与方法

7 、数据库的操作

Yii:app()->库名->createCommand($sql)->queryAll();

8、事务操作

 
try{
    $transaction = $favourable->getDbConnection()->beginTransaction();
    if($favourable->save()==false){
        throw new CException($favourable->errorString);
    }
    if(*****){
        $Mproduct =  new ActivityMpieceRange('create');
        if($Mproduct->save()==false){
            throw new CException($Mproduct->errorString);
        }
    }
    $transaction->commit();
    $this->setFlash("success",'添加成功!');
    $this->refresh();
}catch(CException $e){
    $this->setErrorMessage($e->getMessage());
    $transaction->rollBack();

}

 

9、cookie操作

  •     设置cookie:

                    $cookie = new CHttpCookie('mycookie','this is my cookie');

                   $cookie ->wxpire = time()+60*60*24*30;//设置有效期限30天

                   Yii:app()->request->cookies['mycookie'] = $cookie;

  •     读取cookie:

                 $cookie = Yii:app()->request()->getCookies();

                 echo $cookie['mycookie']->value;

  •     销毁cookie:

            $cookie = Yii:app()->request->getCookies();

            unset($cookie[$name]);

10、session 操作

  • 设置session: 

        Yii::app()->session['var']='value'; 

  • 读取session: 

        echo Yii:app()->session['var'];

  • 销毁一个session: 

        unset(Yii:app()->session['var']);

  • 销毁全部session: 

            Yii:app()->session->clear();//删除session变量

            Yii:app()->session->destroy();//删除服务器的session信息

 

11、yii中引入js和css文件

    Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . "/js/**.js");  

    Yii::app()->clientScript->registerCssFile(Yii::app()->baseUrl . "/css/**.css"); 

 

以上是我所遇到,验证没问题的写法

参考:http://www.cnblogs.com/likwo/archive/2012/04/08/2438021.html

转载请注明:谷谷点程序 » yii使用总结