I w*_*unt 4 recaptcha laravel-5
我是Laravel的新手.我已经使用了这个recaptcha包: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']);