Столкнулся с проблемой валидации mews/captcha.
При использовании стандартного правила валидации
'captcha' => 'required|captcha'
Правило captcha не работало: любой набор символов был валиден.
Решение нашел тут: https://stackoverflow.com/questions/53722858/mewebstudio-captcha-wrong-captcha-in-validation.
Суть:
- Создаем правило
php artisan make:rule ValidateCaptcha
- Открываем app/Rules/ValidateCaptcha и делаем так
<?php namespace App\Rules; use Illuminate\Contracts\Validation\Rule; use Illuminate\Support\Facades\Hash; class ValidateCaptcha implements Rule { /** * Create a new rule instance. * * @return void */ public function __construct() { // } /** * Determine if the validation rule passes. * * @param string $attribute * @param mixed $value * @return bool */ public function passes($attribute, $value) { return Hash::check($value, session('captcha.key')); } /** * Get the validation error message. * * @return string */ public function message() { return 'Неверный код с картинки'; } }
- Теперь используем такое правило(не забываем use App\Rules\ValidateCaptcha; )
'captcha' => ['required', new ValidateCaptcha],