这篇文章主要介绍了Yii2如何增加验证码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

我们假设site/login 表单登录需要增加验证码。
1、siteController控制器的actions方法增加captcha设置
public function actions() { 
return [ 
'captcha' => [ 
'class' => 'yii\captcha\CaptchaAction', 
'maxLength' => 4, 
'minLength' => 4 
], 
]; 
}上面我们简单设置了验证码的位数,有小伙伴好奇都有哪些配置项,这个你可以查看文件 vendor\yiisoft\yii2\captcha,包括验证码背景色,字体文件等设置都可以在这里找到。
2、siteController继续配置。
public function behaviors() { 
return [ 
'access' => [ 
'class' => AccessControl::className(), 
'rules' => [ 
[ 
'actions' => ['login', 'error', 'captcha'], 
'allow' => true, 
], 
], 
]; 
}为access rules的actions增加captcha方法可访问。
3、我们看看view层,增加验证码input。
use yii\captcha\Captcha; = $form->field($model, 'verifyCode')->widget(Captcha::className(), [ 'template' => '', ]) ?>{image}{input}
4、这样还不行,我们还需要增加验证码的验证规则
我们这里用到的是LoginForm,因此修改LoginForm文件
class LoginForm extends Model { 
//...... public $verifyCode; 
public function rules() { 
return [ 
//...... 
['verifyCode', 'captcha'], 
]; 
} 
public function attributeLabels() { 
return [
'verifyCode' => '', //验证码的名称,根据个人喜好设定 
]; 
} 
} 
//定义了verifyCode属性 
//rules规则添加了验证 
//label中定义了其显示名称5、到第四步基本上配置好验证码就会正常显示了。如果你的后台设定了rbac权限控制,恐怕你仍然需要在config内为as accss增加/site/captcha可访问。
6、看效果就好了。

7、有同学问为啥页面刷新验证码不跟着刷新,我个人觉得刷不刷新不重要,当你输错验证码页面刷新的时候验证码才会刷新。如果你非要刷新页面验证码跟着刷新,尝试一种简单的方法实现。
$('验证码对象').click();即在页面刷新的时候重新点击一次验证码进行强制刷新。
感谢你能够认真阅读完这篇文章,希望小编分享的“Yii2如何增加验证码”这篇文章对大家有帮助,同时也希望大家多多支持创新互联网站建设公司,,关注创新互联行业资讯频道,更多相关知识等着你来学习!
当前名称:Yii2如何增加验证码-创新互联
标题URL:http://www.cqwzjz.cn/article/iphpi.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 