注册商中的Laravel recaptcha验证不起作用

I w*_*unt 4 recaptcha laravel-5

我是Laravel的新手.我已经使用了这个rec​​aptcha包:https://github.com/greggilbert/recaptcha 并且文档说:在验证规则中,添加以下内容:

$rules = array(
        // ...
        'g-recaptcha-response' => 'required|recaptcha',
    };
Run Code Online (Sandbox Code Playgroud)

顺便说一下,我使用了laravel 5的注册器:

<?php namespace taxman\Services;

use taxman\User;
use Validator;
use Illuminate\Contracts\Auth\Registrar as RegistrarContract;

class Registrar implements RegistrarContract {

    /**
     * Get a validator for an incoming registration request.
     *
     * @param  array  $data
     * @return \Illuminate\Contracts\Validation\Validator
     */
    public function validator(array $data)
    {
        return Validator::make($data, [
            'name' => 'required|max:255',
            'email' => 'required|email|max:255|unique:users',
            'password' => 'required|confirmed|min:4',
            'telephone' => 'required',
            'g-recaptcha-response' => 'required|recaptcha',
        ]);
    }

    /**
     * Create a new user instance after a valid registration.
     *
     * @param  array  $data
     * @return User
     */
    public function create(array $data)
    {
        return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => bcrypt($data['password']),
        ]);
    }

}
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,laravel返回错误消息:"需要g-recaptcha-response",但是在视图中我使用了这个命令:

<div class="form-group">
         {!! Recaptcha::render() !!}
 </div>
Run Code Online (Sandbox Code Playgroud)

是的,这个领域不是空的!

所以,我想,我应该把它'g-recaptcha-response' => 'required|recaptcha'放在其他地方?因为看起来,在注册商的验证器中不起作用.

小智 8

如果有人因为这个问题仍在拔头发,请删除'recaptcha'验证规则.

使用

'g-recaptcha-response' => 'required'
Run Code Online (Sandbox Code Playgroud)

代替

'g-recaptcha-response' => 'required|recaptcha'
Run Code Online (Sandbox Code Playgroud)

http://tuts.codingo.me/google-recaptcha-in-laravel-application/


小智 0

如果将以下内容粘贴到发生此操作的控制器中,它应该可以工作。

$this->validate($request,['g-recaptcha-response' => 'required|recaptcha']);