- 驗(yàn)證碼不刷新软能?
如果控制器中生成的變量很多糖权,需要拼裝成數(shù)組傳遞給render方法企量,如何才能更簡潔一些?
使用get_defined_vars()得到當(dāng)前作用域所有變量闹伪,避免使用拼裝視圖變量的方式沪铭,在控制器中使用以下代碼:
$this->render('login', get_defined_vars());
- 驗(yàn)證碼不刷新壮池?
這確實(shí)是yii的一個bug, 無論刷新頁面多少次,驗(yàn)證碼似乎都不變化杀怠,原始問題反饋于http://code.google.com/p/yii/issues/detail?id=801
我們可以通過修改框架源碼實(shí)現(xiàn)椰憋,但這種方式會讓程序的移植性變差,變通的方法是在控制的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',
)
)
}