/** * Register field's custom validators. * * @param Factory $factory * @param FormBuilder $builder * @param FieldType $fieldType */ protected function registerValidators(Factory $factory, FormBuilder $builder, FieldType $fieldType) { foreach ($fieldType->getValidators() as $rule => $validator) { $handler = array_get($validator, 'handler'); if (is_string($handler) && !str_contains($handler, '@')) { $handler .= '@handle'; } $factory->extend($rule, function ($attribute, $value, $parameters, Validator $validator) use($handler, $builder) { return $this->container->call($handler, compact('attribute', 'value', 'parameters', 'builder', 'validator')); }, array_get($validator, 'message')); } }