Я создал пользовательский валидатор:
namespace App\Validators;
class PhoneValidationRule extends \Illuminate\Validation\Validator {
public function validatePhone($attribute, $value, $parameters)
{
return preg_match("/^[\+]?[-()\s\d]{4,17}$/", $value);
}
}
и зарегистрировал его:
class ValidatorServiceProvider extends ServiceProvider {
public function boot()
{
\Validator::resolver(function($translator, $data, $rules, $messages)
{
return new PhoneValidationRule($translator, $data, $rules, $messages);
});
}
...
, и он отлично работает, если я вызову его для поля:
$validator = Validator::make($input, [
'emails' => 'required|each:email',
'phone' => 'required|phone',
]);
но когда я пытаюсь применить его к массиву:
$validator = Validator::make($input, [
'emails' => 'required|each:email',
'phones' => 'required|each:phone',
]);
я получаю сообщение об ошибке:
error: {type: "BadMethodCallException", сообщение: "Method [validateEach] не существует. ",…} файл:" /home/.../vendor/laravel/framework/src/Illuminate/Validation/Validator.php "строка: 2564 сообщение:" Метод [validateEach] не существует. "тип: "BadMethodCallException"
что я делаю не так?