在yii2中,验证码使用的方法也比较灵活和方便,甚至可以自定义验证码的模板~
在yii2的demo中,给出的验证码使用方式是这样的:
是在yii提供的表单组件中使用的,这样使用验证码的话,就得先使用表单组件才行,可能相对来说会麻烦一些,所以,就简单得说下验证码得单独使用方法
在yii2中得核心类中发现yii\captcha\Captcha这个类,就是生成验证码得类,从注释中可以看出,这个类可以生成验证码图片和输入验证码得input元素
类中得几个属性,其中我认为这两个属性相对常用和重要一些
其中 $captchaAction 这个属性,是图片生成得请求路径,通过这个路径来生成图片;而$template这个属性是生成验证码和输入框得模板,默认就是这样,如果要自己更改得话,可以像demo中那样,增加一些html代码,在生成时会自动将{image}和{input}替换成图片和输入框
<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>
在生成图片时,会像路径进行请求,在demo中,是直接引用yii\captcha\CaptchaAction类来生成图片(其实大部分情况,我们直接引用就可以满足大多数得需求了)
那么问题来了,比如需要自定验证码得长度,或者图片得尺寸,或者其他得一些参数,我要怎么处理呢?
通过观察yii\captcha\CaptchaAction类中得内容,发现其中有大量得公共属性,来作为参数使用
比如,图片得宽和高,验证码得最小长度和最大长度,背景色,字体等,还有一个是yii中很有特点得参数$fixedVerifyCode(原谅我没有截出来,笔记本屏幕太小了┭┮﹏┭┮),这个参数给出得用法是,如果指定这个值那么验证码就会一直为指定得值,建议在测试中使用此参数,来提高测试效率,是不是考虑得十分周到呢!哈哈
知道这些配置参数之后,就可以在控制器得actions中直接进行配置了
在页面中,只需要进行如下配置就可以使用
<?= Captcha::widget([
'name' => 'ContactForm[verifyCode]',
'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>',
]) ?>
有了生成验证码,就一定会有验证,验证则更加简单,只需要在model得验证码rules中进行如下配置,在进行模型验证时就会自动对验证码进行验证!(给自己留个坑,关于模型得验证等就再下一篇文章来进行介绍吧)
yii中得验证码就是这样了,可控得参数完全能够满足项目得大部分需求,虽然不知道你们是怎么看得。。。反正。我是觉得非常方便( •̀ ω •́ )y