- 验证码不刷新?
如果控制器中生成的变量很多,需要拼装成数组传递给render方法,如何才能更简洁一些?
使用get_defined_vars()得到当前作用域所有变量,避免使用拼装视图变量的方式,在控制器中使用以下代码:
$this->render('login', get_defined_vars());
- 验证码不刷新?
这确实是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',
)
)
}