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', 
                         )
        )
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容