Метод Illuminate Validation Validator::validateCaptcha не существует

#laravel #recaptcha

#laravel #recaptcha

Вопрос:

Я использую Laravel и пока не добавлял никакого кода, но я попытался интегрировать recaptcha в пакет аутентификации laravel. Я поместил скрипт, и recaptcha уже отображается в форме. Я также ввел проверку, чтобы требовался recaptcha. Однако, когда я отправляю форму с recaptcha, она выдает эту ошибку. Вот мой контроллер регистра из пакета аутентификации:

 protected function validator(array $data)
{
    return Validator::make($data, [
        'name' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
        'g-recaptcha-response' => ['required|captcha']
    ]);
}
  

Комментарии:

1. По умолчанию в Laravel нет captcha правила проверки. Используете ли вы какой-либо конкретный пакет laravel, который предоставляет такое правило, или вы где-то определяете это правило?

2. @apokryfos скорее всего, операция использовала: github.com/anhskohbo/no-captcha

Ответ №1:

У меня была такая же проблема, как ни странно, локально она работала нормально, а в рабочей среде — нет.

В моем случае, используя https://github.com/anhskohbo/no-captcha , я должен был добавить:

 AnhskohboNoCaptchaNoCaptchaServiceProvider::class,
  

В массиве поставщиков в:

 app/config/app.php
  

чтобы он работал в рабочей среде. (шаг первый в README из этого репозитория)
и поскольку я выполнил первый шаг, я также выполнил шаг 2. Используя Laravel 9.

Я понятия не имею, почему локально или на другом моем сервере он работал нормально, но не на сервере конкретного клиента..