yii普通控制器及模块控制器里面验证码的使用 [ 2.0 版本 ]
如题,想在一个网站前后台都使用到验证码怎么办?比如前台留言中需要验证码,后台登录需要验证码?如果同时使用公共的验证码就会造成操作冲突。这时需要两个不同的验证码;使用方法如下:
前台默认模块 controllers目录下的IndexController
后台admin模块 modules下controllers目录下IndexController
分别在两个控制器中增加captcha独立操作
public function actions(){
return [
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
],
];
}
分别在不同的模型中增加verifyCode字段,和captcha验证器
假设前台MsgForm:
public $verifyCode;
rules里面增加:
['verifyCode', 'captcha','captchaAction'=>'index/captcha','message'=>'验证码不正确!'],
后台是LoginForm:
public $verifyCode;
rules里面增加:
['verifyCode', 'captcha','captchaAction'=>'admin/index/captcha','message'=>'验证码不正确!'],
前台模板:
<?=$form->field($model,'verifyCode')->widget(Captcha::className(),['captchaAction'=>Yii::$app->urlManager->createUrl('index/captcha'),
'template'=>'<div class="row"><div class="col-md-3 col-sm-3 mr20">{image}</div><div class="col-md-6 col-sm-3">{input}</div></div>'
])?>
后台模板:
<?=$form->field($model,'verifyCode')->widget(Captcha::className(),['captchaAction'=>Yii::$app->urlManager->createUrl('admin/image/captcha'),
'template'=>'<div class="row"><div class="col-md-3 col-sm-3 mr20">{image}</div><div class="col-md-6 col-sm-3">{input}</div></div>'
])?>
zfeig
注册时间:2014-07-29
最后登录:2015-09-29
在线时长:36小时6分
最后登录:2015-09-29
在线时长:36小时6分
- 粉丝55
- 金钱75
- 威望30
- 积分735
共 4 条评论
建议楼主花点时间把格式调整一下。
没注意到编辑器下面的格式例子,~多谢舰长提醒!
后台模板使用
'captchaAction'=>Yii::$app->urlManager->createUrl('admin/index/captcha')
,验证码无法显示$form->field($searchModel, 'verifyCode')->widget(Captcha::className(), [ 'captchaAction'=>'country/captcha', 'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-3">{input}</div></div>', ])
看下siteController就可以了
模板文件中应该加上 use yii\captcha\Captcha;