Validation Google reCaptcha始终使用laravel 5.1重置

Validation Google reCaptcha始终使用laravel 5.1重置,validation,laravel-5,recaptcha,Validation,Laravel 5,Recaptcha,我在网上搜索过,但似乎不一样。我使用的是laravel5.1并实现了GoogleReCAPTCHA。这个场景是,如果表单被提交并返回了带有错误的验证,那么recaptcha会一次又一次地重置,我想要的是不要再次重置它,只是保持验证状态,因为它会让用户一次又一次地验证。你知道这件事吗 更新:对于代码 现在我正在尝试编写代码,这有点冗长,但您已经了解了要点 首先验证您的Recaptcha字段。如果它有效,请设置会话变量以防止它再次呈现在表单中 public function postRegister

我在网上搜索过,但似乎不一样。我使用的是laravel5.1并实现了GoogleReCAPTCHA。这个场景是,如果表单被提交并返回了带有错误的验证,那么recaptcha会一次又一次地重置,我想要的是不要再次重置它,只是保持验证状态,因为它会让用户一次又一次地验证。你知道这件事吗

更新:对于代码


现在我正在尝试编写代码,这有点冗长,但您已经了解了要点

首先验证您的Recaptcha字段。如果它有效,请设置会话变量以防止它再次呈现在表单中

public function postRegister(Request $request)
{
    // Prepare validation rules
    $defaultRules = [
        'username' => 'required|unique:users|max:20|min:3',
        'password' => 'required|min:6',
        'retype_password' => 'required|same:password',
        'email' => 'required|unique:users|email|max:255',
    ];
    $recaptchaRules = [
        'g-recaptcha-response' => 'required|recaptcha',
    ];

    // Set session if recaptcha is valid
    if (Validator::make($request->all(), $recaptchaRules)->passes()) {
        session(['recaptcha' => true]);
    } 
    // Add recaptcha rules to default rules if failed to get single message bag with all errors
    else {
        $defaultRules = array_merge($defaultRules, $recaptchaRules);
    }

    // Validation
    $this->validate($request, $defaultRules);

    // Database save part here...        

    // Reset recaptcha validity so that the recaptcha is displayed on the next submission
    session(['recaptcha' => false]);

    return redirect()->route('register')->with('info', 'Success!');
}
如果尚未验证,则仅输出Recaptcha字段

@unless (session('recaptcha'))
    {{ Recaptcha::render() }}
@endunless

您不能验证验证码吗?如果有效,请将会话变量设置为不再需要它,然后将其从表单中删除?您好。你能更详细地回答吗?这有点让人困惑。你能发布一些代码吗?那我就有东西可以用了。太好了。请看更新。我已经把我建议的一个例子放在一起了。这可能会进一步简化。它有一点bug。然而,我得到了这个想法,这是伟大的!我刚刚发现了$this->validate通话中的错误,但很高兴你们解决了。
@unless (session('recaptcha'))
    {{ Recaptcha::render() }}
@endunless