controller:
public function actions(){
return [
'captcha'=>[
'class' => 'yii\captcha\CaptchaAction',
'backColor'=>0xFFFFFF,
'minLength'=>6,
'maxLength'=>6,
'transparent'=>true,
'testLimit'=>0,
'fixedVerifyCode' => YII_ENV_TEST ? 'test' : null,
],
];
}、
Model
public $verifyCode;
public function rules(){
return [
[['username','password','password_rep','email','verifyCode'],'required'],
['username','match','pattern'=>'/^[\x{4e00}-\x{9fa5}_a-zA-Z0-9]*$/'],
['username','string','max'=>16,'min'=>2],
['username','unique','targetClass'=>'\backend\modules\pub\models\YiiUser','message'=>'账号已存在'],
['email','unique','targetClass'=>'\backend\modules\pub\models\YiiUser','message'=>'邮箱已被绑定'],
[['username','email'],'trim'],
['password','string','max'=>16,'min'=>6],
['email','email','message'=>'邮箱不规范'],
['password_rep','compare','compareAttribute'=>'password','message'=>'两次密码不一致'],
['verifyCode', 'captcha','captchaAction'=>'pub/default/captcha'],
];
}
页面Form部分代码
<?= $form->field($model,'email')->textInput(['placeholder'=>'邮箱'])->label('邮箱')?>
<?= $form->field($model, 'verifyCode')->label('验证码')->widget(Captcha::className(), [
'options'=>['placeholder'=>'验证码'],
'captchaAction' => 'default/captcha',
'imageOptions'=>['style'=>'margin-top:-5px;',],
'template' => '<div class="row"><div class="col-lg-6">{input}</div><div class="col-lg-6">{image}</div></div>',
]) ?>