Yii2使用自带验证码
class LoginForm extends Model { public $username; public $password; public $rememberMe = true; public $verify; private $_user; /** * @inheritdoc */ public function rules() { return [ // username and password are both required [['username', 'password'], 'required'], // rememberMe must be a boolean value ['rememberMe', 'boolean'], // password is validated by validatePassword() ['password', 'validatePassword'], ['verify', 'captcha', 'captchaAction'=>'site/captcha'], ]; } }
可以看到只要在rules中添加
['verify', 'captcha', 'captchaAction'=>'site/captcha'],
** View **
$form->field($model,'verify')->widget(Captcha::className(),[ 'captchaAction'=>'site/captcha', 'imageOptions'=>[ 'alt'=>'刷新', 'title'=>'刷新', 'style'=>'cursor:pointer; display:inline' ], 'template' => '<div class="col-lg-7" style="padding: 0;">{input}</div><div class="col-lg-5" style="padding: 0; text-align: right">{image}</div><div class="clearfix"></div>', 'options' => [ 'placeholder' => '输入验证码', 'class' => 'form-control' ] ])->label(false);
** Controller **
/** * @inheritdoc */ public function actions() { return [ 'captcha' => [ 'class' => 'yii\captcha\CaptchaAction', 'backColor'=>0xffffff,//背景颜色 'maxLength' => 6, //最大显示个数 'minLength' => 5,//最少显示个数 'padding' => 5,//间距 'height'=>34,//高度 'width' => 120, //宽度 'foreColor'=>0x000000, //字体颜色 'offset'=>4, //设置字符偏移量 有效果 ], ]; }
在控制器中加入公用的captcha,这是一个action
** 注意**
整个配置其实是一个很简单的过程,yii2已经帮我实现好了actionCaptcha, 这个action中包含了验证码生成,图片生成,验证码验证的操作,我们只需要在actions中引入这个actionCaptcha, 同时在Model的验证码验证中,将验证方法指向该控制器下面的captcha,同时在View中注意验证提交的地址即可。
整个处理流程类似处理普通的action,只是actionCaptcha 集成了较多功能的可用其他controller而已。
————————————————
版权声明:本文为CSDN博主「leo_howl」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013050330/article/details/102988324