2015-04-14 3 views
2

Я новичок в Laravel. Я использовал этот ReCaptcha пакет: https://github.com/greggilbert/recaptcha И документация Саид, что: В правилах проверки, добавьте следующее:Laravel recaptcha проверка в регистраторе не работает

$rules = array(
     // ... 
     'g-recaptcha-response' => 'required|recaptcha', 
    }; 

Кстати я использую 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']), 
     ]); 
    } 

} 

Но в этом случае возврат ларавелла с сообщением об ошибке: «Требуется g-recaptcha-response», однако в представлении я использовал эту команду:

<div class="form-group"> 
     {!! Recaptcha::render() !!} 
</div> 

И да, поле не пусто!

Итак, я думаю, я должен положить 'g-recaptcha-response' => 'required|recaptcha' где-то еще? Поскольку, похоже, в валидаторе регистратора не работает.

+2

ли вам удалось решить эту проблему? У меня, наверное, один и тот же. – tomexx

ответ

0

Если вы вставьте следующее в контроллер, где это действие происходит, оно должно работать.

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

4

Если кто-то все еще тянет их волосы из-за этой проблемы, просто удалите 'recaptcha' в правиле проверки.

использование

'g-recaptcha-response' => 'required' 

вместо

'g-recaptcha-response' => 'required|recaptcha' 

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

Смежные вопросы