验证器的一个实例:
public function rules() { return array( array('hall_id, guest_mobile, submit_time', 'required'), array('hall_id, submit_time, save_type', 'numerical', 'integerOnly' => true), array('hall_id, guest_mobile', 'length', 'max' => 11), array('guest_mobile', 'match', 'pattern' =>'/^(1[358][0-9]{9})|(15[89][0-9]{8})$/'), array('submit_time', 'length', 'max' => 10), array('password_repeat', 'compare', 'compareAttribute' => 'password', 'message' => '两次密码不一致', 'on' => array('register','phoneRegister','resetPwd','updatePwd')), array('email,user_name', 'unique','message'=>'已被注册'), array('verifyCode', 'ruleVerify', 'on' => 'phoneRegister'), array('id, hall_id, guest_mobile, submit_time, save_type', 'safe', 'on' => 'search'), ); } public function ruleVerify() { $criteria = new CDbCriteria(); $criteria ->compare("verify_code", $this->verifyCode); $criteria ->compare("account", $this->mobile_phone); $model = UserVerify::model()->find($criteria); if(empty($model) || $model->is_active==UserVerify::IS_ACTIVE_YES || $model->expire_time<time()) $this->addError('verifyCode', '验证码不正确或已失效'); }