Validation 如何在Yii2 recaptcha google extension himiklab中重新启用该字段

Validation 如何在Yii2 recaptcha google extension himiklab中重新启用该字段,validation,yii2,recaptcha,yii2-extension,Validation,Yii2,Recaptcha,Yii2 Extension,我正在使用Yi2ReCAPTCHA的扩展,它类似于google的扩展。我想将此字段设置为规则中的必填字段。当我将其设置为如下时,即使我没有单击复选框,也不会进行验证 [['reCaptcha'], 'required'], ['reCaptcha', \himiklab\yii2\recaptcha\ReCaptchaValidator::className(), 'secret' => '***','skipOnEmpty' => false], 看法 行动

我正在使用Yi2ReCAPTCHA的扩展,它类似于google的扩展。我想将此字段设置为规则中的必填字段。当我将其设置为如下时,即使我没有单击复选框,也不会进行验证

  [['reCaptcha'], 'required'],
      ['reCaptcha', \himiklab\yii2\recaptcha\ReCaptchaValidator::className(), 'secret' => '***','skipOnEmpty' => false],
看法


行动

public function actionSignup()
{
$browser=新浏览器;
如果($browser->getBrowser()==browser::browser\u IE&&$browser->getVersion()<11)
{   
返回$this->render('browser');
}
$company=新公司();
$model=new SimUser(['scenario'=>SimUser::scenario_REGISTER]);
如果($model->load(Yii:$app->request->post())&&&$model->validate()&&&$company->load(Yii:$app->request->post())&&&&$company->validate()){
$model->scenario=SimUser::scenario\u寄存器;
$model->setPassword($model->user\u password\u hash);
//$model->setCaptcha($model->captcha);
$model->generateAuthKey();
$token=Yii::$app->security->generateRandomString();
$model->user\u access\u token=$token;
$model->user\u verify=1;
//$company->save();
$model->company\u id=3;
//$model->save();
$model->user_id=44;
变量转储($model->validate());退出();
如果($model->validate()){
//$auth=Yii::$app->authManager;
//$authorRole=$auth->getRole('Company Admin');
//$auth->assign($authorRole,$model->user\u id);
$path='C:/wamp/www/test.qsims.com/web/gentelella-1.2.0/production/images/DCMLogo.png';
Yii::$app->mailer->compose('@app/mail/layouts/verify',['model'=>$model','path'=>$path,'token'=>$model->user\u access\u token])
->设置为($model->user\u email)
->从测试开始设置。qsims@gmail.com')
->setSubject('Welcome to Qsims'.$model->user\u fname.'.“$model->user\u fname.'.请验证您的帐户以继续')
->setTextBody('验证帐户')
->send();
}
//\Yii::$app->user->login($model);
返回$this->redirect(['site/verify new']);
}
返回$this->render('signup'[
'model'=>$model,
“公司”=>$company,
]);
}

我哪里出错了?

是的,我错了。。。我点击盒子,它工作得很好。。。但是不勾选框,我就可以提交表单。如果您安装了cURL库,可以在规则中添加
'grabberType'=>2
,看看是否有帮助。什么是grabberType?选择从Google检索JSON响应的机制的标志。你还没有通读这个库的代码来寻找答案??我已经做了…也研究了github文件中的所有方法..但没有找到解决方案..是的,我做了。。。我点击盒子,它工作得很好。。。但是不勾选框,我就可以提交表单。如果您安装了cURL库,可以在规则中添加
'grabberType'=>2
,看看是否有帮助。什么是grabberType?选择从Google检索JSON响应的机制的标志。你还没有通读这个库的代码来寻找答案??我已经做了…也研究了github文件中的所有方法..但没有找到解决方案。。
Add this to the model
Public $reCaptcha;
add this to rules
 ['reCaptcha', 'reCaptchaValidator']

call the custom validation
 public function reCaptchaValidator($attribute)
    {
        $validator = new ReCaptchaValidator;
        if (!$validator->validate($this->reCaptcha, $error)) {
            $this->addError($attribute, $error);
        }

    }
  public function actionSignup()
    {

        $browser = new Browser;
        if( $browser->getBrowser() == Browser::BROWSER_IE && $browser->getVersion() < 11 ) 
            {   
                return $this->render('browser');                                                                                                                                   
        }

        $company = new Company(); 
        $model = new SimUser(['scenario' => SimUser::SCENARIO_REGISTER]);

        if ($model->load(Yii::$app->request->post())&& $model->validate() && $company->load(Yii::$app->request->post())&& $company->validate()) {
           $model->scenario = SimUser::SCENARIO_REGISTER;
           $model->setPassword($model->user_password_hash);
          // $model->setCaptcha($model->captcha);
            $model->generateAuthKey(); 
            $token = Yii::$app->security->generateRandomString();
            $model->user_access_token = $token;
            $model->user_verify = 1;
           // $company->save();
            $model->company_id = 3; 
          //  $model->save();
            $model->user_id = 44;
            var_dump($model->validate());exit();

            if ($model->validate()){
//                $auth = Yii::$app->authManager;
//                $authorRole = $auth->getRole('Company Admin');
//                $auth->assign($authorRole, $model->user_id);
                $path = 'C:/wamp/www/test.qsims.com/web/gentelella-1.2.0/production/images/DCMLogo.png';
                Yii::$app->mailer->compose('@app/mail/layouts/verify',['model' => $model, 'path' => $path,'token' => $model->user_access_token])
                       ->setTo($model->user_email)
                       ->setFrom('test.qsims@gmail.com')
                       ->setSubject('Welcome to Qsims'.$model->user_fname." ".$model->user_lname.'. Verify your account to continue')
                       ->setTextBody('Verify Account')
                       ->send(); 
            }

          //  \Yii::$app->user->login($model);
              return $this->redirect(['site/verify-new']);
        }

        return $this->render('signup', [
            'model' => $model,
            'company' => $company,

        ]);
    }
Add this to the model
Public $reCaptcha;
add this to rules
 ['reCaptcha', 'reCaptchaValidator']

call the custom validation
 public function reCaptchaValidator($attribute)
    {
        $validator = new ReCaptchaValidator;
        if (!$validator->validate($this->reCaptcha, $error)) {
            $this->addError($attribute, $error);
        }

    }