yii 验证问题

时间:2023-03-08 16:33:26

yii 版本2.08

yii 验证码问题

1.模型里加入'verifyCode', 'captcha','message'=>'error','captchaAction' => 'test/captcha'
 * 这个要配置指定的方法'captchaAction' => 'test/captcha'(这个是自己的控制器的)
 * 2.在控制器里的actions 添加验证码的配置
 * 'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
'maxLength' => 4,
'minLength' => 4,
'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
],
 *
 * 3.在前台的页面里调用验证码时加多一个'captchaAction' => 'test/captcha'(这个是自己的控制器的,跟上面的一致)配置
 * 完成

自定义验证规则问题:

1.mode rules 如:['password','my(自定义的验证规则)'],

2.写这个方法

public function my($attribute , $params)
    {
        if(!preg_match("/^[\w]{6,20}$/" , $this->$attribute)){
            $this->addError($attribute , '用户名必须为6~20的数字或字母');
        }
    }

说明:这个只能在提交后才能验证

3.在控制器里调用这个模型时

$model = new RegisterForm();
if($model->load(Yii::$app->request->post()) && $model->validate()  )

这个$model->validate()必须在加入,我之前没有加入一直不成功