yii常见问题--持续更新

  1. 验证码不刷新?
    如果控制器中生成的变量很多,需要拼装成数组传递给render方法,如何才能更简洁一些?
    使用get_defined_vars()得到当前作用域所有变量,避免使用拼装视图变量的方式,在控制器中使用以下代码:
$this->render('login', get_defined_vars());
  1. 验证码不刷新?
    这确实是yii的一个bug, 无论刷新页面多少次,验证码似乎都不变化,原始问题反馈于http://code.google.com/p/yii/issues/detail?id=801

我们可以通过修改框架源码实现,但这种方式会让程序的移植性变差,变通的方法是在控制的actions方法中为CCaptchaAction组件指定特殊属性:

public function actions()    {        
          return array(            
            // captcha action renders the CAPTCHA image displayed on the contact page            
          'captcha'=>array(                
                            'class'=>'CCaptchaAction',              
                            'backColor'=>0xFFFFFF,                
                            'fixedVerifyCode' =>substr(md5(time()),0,4),                 
                            'fontFile' => yii::app()->basePath.'/simsun.ttc', 
                         )
        )
    }

你可能感兴趣的:(yii常见问题--持续更新)