VOOZH about

URL: https://deepwiki.com/hypervel/support/8.1-validator-facade

⇱ Validator Facade | hypervel/support | DeepWiki


Loading...
Menu

Validator Facade

The Validator Facade provides a static interface for validating data against rules. It acts as a gateway to the validation system, allowing you to create validator instances, define validation rules, customize error messages, and extend validation functionality with custom rules. The facade resolves to the \Hypervel\Validation\Contracts\Factory interface, which manages validator instance creation and rule registration.

For HTTP request validation patterns, see Request and Response. For testing validation behavior, see Facade Mocking.

Purpose and Scope

The Validator Facade enables:

  • Creating validator instances with make() and performing inline validation with validate()
  • Applying built-in validation rules covering data types, formats, comparisons, and database existence
  • Registering custom validation rules via extend(), extendImplicit(), and extendDependent()
  • Customizing error messages and attribute display names
  • Accessing validation results, errors, and validated data

Sources: src/Facades/Validator.php1-197

Facade Resolution

The Validator Facade resolves through the service container to the validation factory implementation.


Sources: src/Facades/Validator.php193-196

Basic Usage Patterns

Creating Validator Instances

The make() method creates a validator instance with data, rules, custom messages, and attribute names:


The validate() method performs validation and returns validated data or throws an exception:






















MethodReturnsBehavior on Failure
make()Validator instanceNo exception, use passes()/fails()
validate()Validated data arrayThrows validation exception

Sources: src/Facades/Validator.php10-11

Validation Lifecycle


Sources: src/Facades/Validator.php25-47

Built-in Validation Rules

The Validator provides over 100 built-in validation rules organized into functional categories.

Rule Categories


Sources: src/Facades/Validator.php74-186

Common Validation Rules

Rule CategoryMethodsPurpose
RequiredvalidateRequired(), validateRequiredIf(), validateRequiredUnless()Ensure field presence
Type CheckingvalidateString(), validateInteger(), validateBoolean(), validateArray()Verify data types
FormatvalidateEmail(), validateUrl(), validateUuid(), validateJson()Check specific formats
Size ConstraintsvalidateMin(), validateMax(), validateBetween(), validateSize()Validate lengths/sizes
String PatternsvalidateAlpha(), validateAlphaDash(), validateAlphaNum(), validateRegex()Pattern matching
ComparisonvalidateSame(), validateDifferent(), validateConfirmed()Compare fields
DatabasevalidateExists(), validateUnique()Check database records
FilevalidateFile(), validateImage(), validateMimes(), validateExtensions()Validate uploads
Date/TimevalidateDate(), validateDateFormat(), validateBefore(), validateAfter()Temporal validation
ConditionalvalidateRequiredWith(), validateProhibitedIf(), validateExcludeIf()Context-dependent rules

Sources: src/Facades/Validator.php74-186

Custom Rules and Extensions

The Validator supports three types of custom rule extensions, each with different validation behaviors.

Extension Types


Sources: src/Facades/Validator.php12-15

Extension Method Signatures

MethodParametersWhen RunsUse Case
extend()(string $rule, \Closure|string $extension, string|null $message)Attribute presentStandard custom validation
extendImplicit()(string $rule, \Closure|string $extension, string|null $message)AlwaysRequired-like rules
extendDependent()(string $rule, \Closure|string $extension, string|null $message)Attribute presentCross-field validation
replacer()(string $rule, \Closure|string $replacer)After failureCustom error formatting

Sources: src/Facades/Validator.php12-15

Adding Extensions to Instances

Validator instances can also have extensions added directly:

MethodPurpose
addExtension()Add single standard extension
addExtensions()Add multiple standard extensions
addImplicitExtension()Add single implicit extension
addImplicitExtensions()Add multiple implicit extensions
addDependentExtension()Add single dependent extension
addDependentExtensions()Add multiple dependent extensions
addReplacer()Add single message replacer
addReplacers()Add multiple message replacers

Sources: src/Facades/Validator.php50-57

Error Messages and Attributes

Message Customization Flow


Sources: src/Facades/Validator.php31-71

Message Configuration Methods

MethodPurposeExample
setCustomMessages(array $messages)Override default error messagesCustom validation text per rule
setAttributeNames(array $attributes)Set display names for attributes"email" → "Email Address"
addCustomAttributes(array $attributes)Add attribute names without replacingMerge with existing names
setValueNames(array $values)Set display names for values"1" → "Yes", "0" → "No"
addCustomValues(array $customValues)Add value names without replacingMerge with existing values
setFallbackMessages(array $messages)Set fallback messagesUsed when translation missing
setImplicitAttributesFormatter(callable $formatter)Format implicit attribute namesCustom dot notation formatting

Sources: src/Facades/Validator.php58-64

Accessing Error Information

MethodReturnsPurpose
errors()MessageBagGet error message bag
messages()MessageBagAlias for errors()
getMessageBag()MessageBagAlias for errors()
failed()arrayGet failed rules per attribute
valid()arrayGet validated attributes
invalid()arrayGet invalid attributes

Sources: src/Facades/Validator.php32-37

Validation Results

Checking Validation Status


Sources: src/Facades/Validator.php26-37

Data Access Methods

MethodReturnsDescription
validated()arrayOnly validated attributes
safe(array|null $keys)ValidatedInput|arraySafe accessor for validated data
valid()arrayAll valid attributes
invalid()arrayAll invalid attributes
getData()arrayOriginal input data
getValue(string $attribute)mixedGet single attribute value
attributes()arrayGet attribute display names

Sources: src/Facades/Validator.php29-43

Advanced Features

Database Validation

Database validation rules check for record existence or uniqueness:

MethodPurposeParameters
validateExists()Verify record existstable,column,value
validateUnique()Verify value is uniquetable,column,except
parseTable()Parse table nameConnection and table parsing
getQueryColumn()Resolve column nameParameter and attribute mapping
guessColumnForQuery()Infer column from attributeConvention-based mapping

Sources: src/Facades/Validator.php105-109

Presence Verification

The presence verifier enables database validation:

MethodPurpose
getPresenceVerifier()Get current verifier instance
setPresenceVerifier(PresenceVerifierInterface $verifier)Configure database verifier

Sources: src/Facades/Validator.php20-21

Conditional Validation


Sources: src/Facades/Validator.php48-49

Rule Management

MethodPurpose
getRules()Get all defined rules
getRulesWithoutPlaceholders()Get rules with placeholders resolved
setRules(array $rules)Replace all rules
addRules(array $rules)Add/merge additional rules
hasRule(string $attribute, array|string $rules)Check if attribute has specific rule

Sources: src/Facades/Validator.php44-47

Data Manipulation

MethodPurpose
setData(array $data)Replace validation data
setValue(string $attribute, mixed $value)Set individual attribute value
parseData(array $data)Parse and prepare data for validation

Sources: src/Facades/Validator.php24-43

After Validation Hooks

The after() method registers callbacks that run after validation completes:


Sources: src/Facades/Validator.php25

Exception Handling

MethodPurpose
getException()Get exception class name for failures
setException(string|\Throwable $exception)Configure custom exception class
validateWithBag(string $errorBag)Validate with named error bag

Sources: src/Facades/Validator.php28-66

Integration with Container

The Validator integrates with the PSR-11 service container for dependency resolution:

MethodPurpose
getContainer()Get current container instance
setContainer(\Psr\Container\ContainerInterface $container)Configure dependency injection container
resolver(\Closure $resolver)Set custom validator resolver

Sources: src/Facades/Validator.php18-23

Parameter Handling

Validation rules often require parameters that are parsed and validated:

MethodPurpose
parseNamedParameters(array $parameters)Parse named parameter syntax
parseDependentRuleParameters(array $parameters)Parse dependent rule parameters
requireParameterCount(int $count, array $parameters, string $rule)Validate parameter count

Sources: src/Facades/Validator.php167-186

Translation Integration

The Validator uses the translation service for internationalized error messages:

MethodPurpose
getTranslator()Get translator instance
setTranslator(Translator $translator)Configure translator service

For translation features, see Localization.

Sources: src/Facades/Validator.php19-68

Summary

The Validator Facade provides:

  • Static access to validation factory via FactoryContract::class resolution
  • Over 100 built-in validation rules covering types, formats, comparisons, and files
  • Three extension types: standard (extend), implicit (extendImplicit), and dependent (extendDependent)
  • Comprehensive error message customization through messages, attributes, values, and replacers
  • Validation result access via passes(), fails(), validated(), and error retrieval methods
  • Advanced features including conditional validation, database checks, and after-validation hooks

Sources: src/Facades/Validator.php1-197