yii的验证码
验证码比较麻烦,在三部分各有体现
controller
<?php namespace app\controllers\demo_code; use yii\web\Controller; class DemoController extends Controller{ //重写actions类 public function actions(){ return [ 'captcha'=>[ //初始化一个CaptchaAction类,并写验证码的一些参数 'class' => 'yii\captcha\CaptchaAction', 'maxLength'=>4, 'minLength'=>4, 'height'=>40, 'width'=>80, ], ]; }
//调用 public function actionIndex(){ $code = new \app\models\demo_code\code; return $this->render('view',['code'=>$code]); } } ?>
model
<?php namespace app\models\demo_code; use yii\base\Model; class code extends Model{ //初始化一个变量,其实就是验证码 public $verify_code; public function rules(){ return [ //对上面变量的字段进行验证
//captchaAction是controller里面的 ['verify_code','captcha','captchaAction'=>'demo_code/demo/captcha'], ['verify_code','required','message'=>'不能为空'] ]; } } ?>
view
<?php echo \yii\captcha\Captcha::widget([ 'model'=>$code,//controller传过来的参数 'attribute'=>'verify_code',//model开启验证字段名字 'captchaAction'=>'demo_code/demo/captcha',//验证字段的方法,对应controller的action的namespace 'options'=>['id'=>'input'],//填写一些其他信息,比如class 'imageOptions'=>['alt'=>'点击刷新'],//图片的属性 ]); ?>
作者:大傻逼
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。