Yii2模块中的CAPTCHA操作ID无效

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Yii2模块中的CAPTCHA操作ID无效脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我在自定义联系人模块中收到了无效的CAPTCHA操作ID异常.我设法显示验证码,但模型验证规则会抛出无效的操作ID异常.以下是我的代码

联系我们/控制器/ DefaultController.PHP

class DefaultController extends Controller
{
    public function behaviors()
    {
        return [
            'access' => [
                'class' => \yii\filters\AccessControl::classname(),'rules' => [
                    [
                        'actions' => ['captcha','index'],'allow' => true,],]
            ]
        ];
    }

    public function actions()
    {
        return [
            'error' => [
                'class' => 'yii\web\ErrorAction','captcha' => [
                'class' => 'yii\captcha\CaptchaAction','fixedVerifyCode' => YII_env_test ? 'testme' : null,];
    }

    public function actionIndex()
    {
        $model = new ContactForm();
        if ($model->load(Yii::$app->request->post()) && $model->contact(setting::ADMIN_EMaiL_ADDRESS)) {
            Yii::$app->session->setFlash('contactFormSubmITted');

            return $this->refresh();
        } else {
            return $this->render('index',[
                'model' => $model,]);
        }
    }
}

联系我们/模型/ ContactForm.PHP

public function rules()
{
    return [
        // name,email,subject and body are required
        [['name','email','subject','body','verifyCode'],'required'],// email has to be a valid email address
        ['email','email'],// verifyCode needs to be entered correctly
        ['verifyCode','captcha','captchaAction'=>'default/captcha'],];
}

联系我们/视图/认/ index.PHP文件

<?PHP $form = ActiveForm::be@R_406_2848@(['id' => 'contact-form']); ?>
            <?= $form->field($model,'name') ?>
            <?= $form->field($model,'email') ?>
            <?= $form->field($model,'subject') ?>
            <?= $form->field($model,'body')->textArea(['rows' => 6]) ?>
            <?= $form->field($model,'verifyCode')->widget(Captcha::className(),[
                'captchaAction' => 'default/captcha','template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>',]) ?>
            <div class="form-group">
                <?= HtML::submitButton('Submit',['class' => 'BTn btn-Primary','name' => 'contact-button']) ?>
            </div>
 <?PHP ActiveForm::end(); ?>

我得到以下错误

Exception (Invalid Configuration) 'yii\base\InvalIDConfigException' with message 'Invalid CAPTCHA action ID: default/captcha'in E:\wamp\www\yii-application\vendor\yiisoft\yii2\captcha\CaptchaValidator.PHP:81

我错过了什么吗?

@H_502_19@
@H_502_19@
应该修改验证规则:
['verifyCode','captchaAction'=>'/contactus/default/captcha'],
@H_502_19@
本图文内容来网友网络收集整理提供,作为学习参考使用,版权属于原作者。

脚本宝典总结

以上是脚本宝典为你收集整理的Yii2模块中的CAPTCHA操作ID无效全部内容,希望文章能够帮你解决Yii2模块中的CAPTCHA操作ID无效所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。