sxtuwy
- sxtuwy 回复了话题 Yii 快速入门教程4、绝对适合初学
完整版在新手教程里面。
原来是这样添加css和javascript文件的,第一次见,学习了。
- sxtuwy 回复了话题 yii快速入门教程3、绝对适合初学者
从哪里搞的呀?怎么这么多,是新不是旧的?
通过使用小物件,提高验证码的通用性
CForm为Yii提供了表单自动生成功能,非常灵活和强大。通过传入数组和Model,就可以自动生成表单。有些人不喜欢硬编码,认为这样失去了灵活性。但是Yii中几乎所有的CSS属性都可以自定义,而我一般使用默认的CSS属性值,这样带来的好处是可以在协作的时候统一CSS属性名。但是,验证码(Captcha)不是一个CInputWidget,所以不能使用简单的type=>’CCapthca’来将一个字段来显示为验证码。现有的解决方案是给CForm添加一个字符串元素,但是比较麻烦,需要手工写一些HTML。但是,写一个简单的Widget就可以了啊。为什么要搞得那么复杂。
比如这样:
class CaptchaWidget extends CInputWidget { public $hint = null; public function init() { if(!extension_loaded(‘gd’)) throw new CException(‘CaptchaWidget need GD’); } public function run() { echo CHtml::activeTextField($this->model,’captcha’, $this->htmlOptions); Yii::app()->controller->widget(‘CCaptcha’); $this->hint===null ? ” : ‘<div>’.$this->hint.’</div>’; } }
使用的时候在表单配置数组里面添加一行 ‘captcha’=>array(‘type’=>’CaptchaWidge’)。当然,前提是你的Model里面需要有一个Captcha属性。对于我来说,因为我是代码洁癖,所以对于需要验证码的情况我都不使用原来的Model(比如User的Model),而是使用CFormModel来新建一个专用的Model。
- sxtuwy 发布了话题关于验证码的动作名称?