Class Validator
Validator object encapsulates all methods related to data validations for a model It also provides an API to dynamically change validation rules for each model field.
Implements ArrayAccess to easily modify rules in the set
Constants
-
string
NESTED ¶'_nested'
Used to flag nested rules created with addNested() and addNestedMany()
Property Summary
-
$_allowEmptyMessages protected
array
Contains the validation messages associated with checking the emptiness for each corresponding field.
-
$_defaultProviders protected static
array
An associative array of objects or classes used as a default provider list
-
$_fields protected
array
Holds the ValidationSet objects array
-
$_presenceMessages protected
array
Contains the validation messages associated with checking the presence for each corresponding field.
-
$_providers protected
array
An associative array of objects or classes containing methods used for validation
-
$_useI18n protected
bool
Whether or not to use I18n functions for translating default error messages
Method Summary
-
__construct() public
Constructor
-
__debugInfo() public
Get the printable version of this object.
-
_canBeEmpty() protected
Returns whether the field can be left blank according to
allowEmpty
-
_checkPresence() protected
Returns false if any validation for the passed rule set should be stopped due to the field missing in the data array
-
_convertValidatorToArray() protected
Converts validator to fieldName => $settings array
-
_fieldIsEmpty() protected
Returns true if the field is empty in the passed data array
-
_processRules() protected
Iterates over each rule in the validation set and collects the errors resulting from executing them
-
add() public
Adds a new rule to a field's rule set. If second argument is an array then rules list for the field will be replaced with second argument and third argument will be ignored.
-
addDefaultProvider() public static
Associates an object to a name so it can be used as a default provider.
-
addNested() public
Adds a nested validator.
-
addNestedMany() public
Adds a nested validator.
-
allowEmpty() public
Allows a field to be empty. You can also pass array. Using an array will let you provide the following keys:
-
alphaNumeric() public
Add an alphanumeric rule to a field.
-
ascii() public
Add a validation rule to ensure a field contains only ascii bytes
-
boolean() public
Add a boolean validation rule to a field.
-
containsNonAlphaNumeric() public
Add a rule to check if a field contains non alpha numeric characters.
-
count() public
Returns the number of fields having validation rules
-
creditCard() public
Add a credit card rule to a field.
-
date() public
Add a date format validation rule to a field.
-
dateTime() public
Add a date time format validation rule to a field.
-
decimal() public
Add a decimal validation rule to a field.
-
email() public
Add an email validation rule to a field.
-
equals() public
Add a equal to comparison rule to a field.
-
errors() public
Returns an array of fields that have failed validation. On the current model. This method will actually run validation rules over data, not just return the messages.
-
field() public
Returns a ValidationSet object containing all validation rules for a field, if passed a ValidationSet as second argument, it will replace any other rule set defined before
-
getDefaultProvider() public static
Returns the default provider stored under that name if it exists.
-
getDefaultProviders() public static
Get the list of default providers.
-
getIterator() public
Returns an iterator for each of the fields to be validated
-
getProvider() public
Returns the provider stored under that name if it exists.
-
greaterThan() public
Add a greater than comparison rule to a field.
-
greaterThanOrEqual() public
Add a greater than or equal to comparison rule to a field.
-
hasAtLeast() public
Add a validation rule to ensure that a field is an array containing at least the specified amount of elements
-
hasAtMost() public
Add a validation rule to ensure that a field is an array containing at most the specified amount of elements
-
hasField() public
Check whether or not a validator contains any rules for the given field.
-
hexColor() public
Add a validation rule to ensure a field is a 6 digits hex color value.
-
inList() public
Add a validation rule to ensure the field value is within a whitelist.
-
integer() public
Add a validation rule to ensure a field is an integer value.
-
ip() public
Add an IP validation rule to a field.
-
ipv4() public
Add an IPv4 validation rule to a field.
-
ipv6() public
Add an IPv6 validation rule to a field.
-
isArray() public
Add a validation rule to ensure that a field contains an array.
-
isEmptyAllowed() public
Returns whether or not a field can be left empty for a new or already existing record.
-
isPresenceRequired() public
Returns whether or not a field can be left out for a new or already existing record.
-
latLong() public
Add a validation rule to ensure the field is a lat/long tuple.
-
latitude() public
Add a validation rule to ensure the field is a latitude.
-
lengthBetween() public
Add an rule that ensures a string length is within a range.
-
lessThan() public
Add a less than comparison rule to a field.
-
lessThanOrEqual() public
Add a less than or equal comparison rule to a field.
-
localizedTime() public
Add a localized time, date or datetime format validation rule to a field.
-
longitude() public
Add a validation rule to ensure the field is a longitude.
-
maxLength() public
Add a string length validation rule to a field.
-
maxLengthBytes() public
Add a string length validation rule to a field.
-
minLength() public
Add a string length validation rule to a field.
-
minLengthBytes() public
Add a string length validation rule to a field.
-
multipleOptions() public
Add a validation rule for a multiple select. Comparison is case sensitive by default.
-
naturalNumber() public
Add a natural number validation rule to a field.
-
nonNegativeInteger() public
Add a validation rule to ensure a field is a non negative integer.
-
notBlank() public
Add a notBlank rule to a field.
-
notEmpty() public
Sets a field to require a non-empty value. You can also pass array. Using an array will let you provide the following keys:
-
notEquals() public
Add a not equal to comparison rule to a field.
-
numeric() public
Add a numeric value validation rule to a field.
-
offsetExists() public
Returns whether a rule set is defined for a field or not
-
offsetGet() public
Returns the rule set for a field
-
offsetSet() public
Sets the rule set for a field
-
offsetUnset() public
Unsets the rule set for a field
-
provider() public deprecated
Associates an object to a name so it can be used as a provider. Providers are objects or class names that can contain methods used during validation of for deciding whether a validation rule can be applied. All validation methods, when called will receive the full list of providers stored in this validator.
-
providers() public
Get the list of providers in this validator.
-
range() public
Add a validation rule to ensure a field is within a numeric range
-
regex() public
Returns whether or not a field matches against a regular expression.
-
remove() public
Removes a rule from the set by its name
-
requirePresence() public
Sets whether a field is required to be present in data array. You can also pass array. Using an array will let you provide the following keys:
-
sameAs() public
Add a rule to compare two fields to each other.
-
scalar() public
Add a validation rule to ensure that a field contains a scalar.
-
setProvider() public
Associates an object to a name so it can be used as a provider. Providers are objects or class names that can contain methods used during validation of for deciding whether a validation rule can be applied. All validation methods, when called will receive the full list of providers stored in this validator.
-
time() public
Add a time format validation rule to a field.
-
uploadedFile() public
Add a validation rule to ensure the field is an uploaded file
-
url() public
Add a validation rule to ensure a field is a URL.
-
urlWithProtocol() public
Add a validation rule to ensure a field is a URL.
-
utf8() public
Add a validation rule to ensure a field contains only BMP utf8 bytes
-
utf8Extended() public
Add a validation rule to ensure a field contains only utf8 bytes.
-
uuid() public
Add a validation rule to ensure the field is a UUID
Method Detail
_canBeEmpty() ¶ protected
_canBeEmpty(Cake\Validation\ValidationSet $field, array $context): bool
Returns whether the field can be left blank according to allowEmpty
Parameters
-
Cake\Validation\ValidationSet
$field the set of rules for a field
-
array
$context a key value list of data containing the validation context.
Returns
bool
_checkPresence() ¶ protected
_checkPresence(Cake\Validation\ValidationSet $field, array $context): bool
Returns false if any validation for the passed rule set should be stopped due to the field missing in the data array
Parameters
-
Cake\Validation\ValidationSet
$field The set of rules for a field.
-
array
$context A key value list of data containing the validation context.
Returns
bool
_convertValidatorToArray() ¶ protected
_convertValidatorToArray(int|string $fieldName, array $defaults = [], string|array $settings = []): array
Converts validator to fieldName => $settings array
Parameters
-
int|string
$fieldName name of field
-
array
$defaults optional default settings
-
string|array
$settings optional settings from data
Returns
array
_fieldIsEmpty() ¶ protected
_fieldIsEmpty(mixed $data): bool
Returns true if the field is empty in the passed data array
Parameters
-
mixed
$data value to check against
Returns
bool
_processRules() ¶ protected
_processRules(string $field, Cake\Validation\ValidationSet $rules, array $data, bool $newRecord): array
Iterates over each rule in the validation set and collects the errors resulting from executing them
Parameters
-
string
$field The name of the field that is being processed
-
Cake\Validation\ValidationSet
$rules the list of rules for a field
-
array
$data the full data passed to the validator
-
bool
$newRecord whether is it a new record or an existing one
Returns
array
add() ¶ public
add(string $field, array|string $name, arrayCake\Validation\ValidationRule $rule = []): $this
Adds a new rule to a field's rule set. If second argument is an array then rules list for the field will be replaced with second argument and third argument will be ignored.
Example:
$validator
->add('title', 'required', ['rule' => 'notBlank'])
->add('user_id', 'valid', ['rule' => 'numeric', 'message' => 'Invalid User'])
$validator->add('password', [
'size' => ['rule' => ['lengthBetween', 8, 20]],
'hasSpecialCharacter' => ['rule' => 'validateSpecialchar', 'message' => 'not valid']
]);
Parameters
-
string
$field The name of the field from which the rule will be added
-
array|string
$name The alias for a single rule or multiple rules array
-
arrayCake\Validation\ValidationRule
$rule optional the rule to add
Returns
$this
addDefaultProvider() ¶ public static
addDefaultProvider(string $name, object|string $object): void
Associates an object to a name so it can be used as a default provider.
Parameters
-
string
$name The name under which the provider should be set.
-
object|string
$object Provider object or class name.
Returns
void
addNested() ¶ public
addNested(string $field, Cake\Validation\Validator $validator): $this
Adds a nested validator.
Nesting validators allows you to define validators for array types. For example, nested validators are ideal when you want to validate a sub-document, or complex array type.
This method assumes that the sub-document has a 1:1 relationship with the parent.
The providers of the parent validator will be synced into the nested validator, when errors are checked. This ensures that any validation rule providers connected in the parent will have the same values in the nested validator when rules are evaluated.
Parameters
-
string
$field The root field for the nested validator.
-
Cake\Validation\Validator
$validator The nested validator.
Returns
$this
addNestedMany() ¶ public
addNestedMany(string $field, Cake\Validation\Validator $validator): $this
Adds a nested validator.
Nesting validators allows you to define validators for array types. For example, nested validators are ideal when you want to validate many similar sub-documents or complex array types.
This method assumes that the sub-document has a 1:N relationship with the parent.
The providers of the parent validator will be synced into the nested validator, when errors are checked. This ensures that any validation rule providers connected in the parent will have the same values in the nested validator when rules are evaluated.
Parameters
-
string
$field The root field for the nested validator.
-
Cake\Validation\Validator
$validator The nested validator.
Returns
$this
allowEmpty() ¶ public
allowEmpty(string|array $field, bool|string|callable $when = true, string|null $message = null): $this
Allows a field to be empty. You can also pass array. Using an array will let you provide the following keys:
when
individual when condition for field- 'message' individual message for field
You can also set when and message for all passed fields, the individual setting takes precedence over group settings.
This is the opposite of notEmpty() which requires a field to not be empty. By using $mode equal to 'create' or 'update', you can allow fields to be empty when records are first created, or when they are updated.
Example:
// Email can be empty
$validator->allowEmpty('email');
// Email can be empty on create
$validator->allowEmpty('email', 'create');
// Email can be empty on update
$validator->allowEmpty('email', 'update');
// Email and subject can be empty on update
$validator->allowEmpty(['email', 'subject'], 'update');
// Email can be always empty, subject and content can be empty on update.
$validator->allowEmpty(
[
'email' => [
'when' => true
],
'content' => [
'message' => 'Content cannot be empty'
],
'subject'
],
'update'
);
It is possible to conditionally allow emptiness on a field by passing a callback as a second argument. The callback will receive the validation context array as argument:
$validator->allowEmpty('email', function ($context) {
return !$context['newRecord'] || $context['data']['role'] === 'admin';
});
This method will correctly detect empty file uploads and date/time/datetime fields.
Because this and notEmpty()
modify the same internal state, the last
method called will take precedence.
Parameters
-
string|array
$field the name of the field or a list of fields
-
bool|string|callable
$when optional Indicates when the field is allowed to be empty Valid values are true (always), 'create', 'update'. If a callable is passed then the field will allowed to be empty only when the callback returns true.
-
string|null
$message optional The message to show if the field is not
Returns
$this
alphaNumeric() ¶ public
alphaNumeric(string $field, string|null $message = null, string|callable|null $when = null): $this
Add an alphanumeric rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
ascii() ¶ public
ascii(string $field, string|null $message = null, string|callable|null $when = null): $this
Add a validation rule to ensure a field contains only ascii bytes
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
boolean() ¶ public
boolean(string $field, string|null $message = null, string|callable|null $when = null): $this
Add a boolean validation rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
containsNonAlphaNumeric() ¶ public
containsNonAlphaNumeric(string $field, int $limit = 1, string|null $message = null, string|callable|null $when = null): $this
Add a rule to check if a field contains non alpha numeric characters.
Parameters
-
string
$field The field you want to apply the rule to.
-
int
$limit optional The minimum number of non-alphanumeric fields required.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
creditCard() ¶ public
creditCard(string $field, string $type = 'all', string|null $message = null, string|callable|null $when = null): $this
Add a credit card rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
string
$type optional The type of cards you want to allow. Defaults to 'all'. You can also supply an array of accepted card types. e.g
['mastercard', 'visa', 'amex']
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
date() ¶ public
date(string $field, array $formats = ['ymd'], string|null $message = null, string|callable|null $when = null): $this
Add a date format validation rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
array
$formats optional A list of accepted date formats.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
dateTime() ¶ public
dateTime(string $field, array $formats = ['ymd'], string|null $message = null, string|callable|null $when = null): $this
Add a date time format validation rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
array
$formats optional A list of accepted date formats.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
decimal() ¶ public
decimal(string $field, int|null $places = null, string|null $message = null, string|callable|null $when = null): $this
Add a decimal validation rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
int|null
$places optional The number of decimal places to require.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
email() ¶ public
email(string $field, bool $checkMX = false, string|null $message = null, string|callable|null $when = null): $this
Add an email validation rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
bool
$checkMX optional Whether or not to check the MX records.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
equals() ¶ public
equals(string $field, int|float $value, string|null $message = null, string|callable|null $when = null): $this
Add a equal to comparison rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
int|float
$value The value user data must be equal to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
errors() ¶ public
errors(array $data, bool $newRecord = true): array
Returns an array of fields that have failed validation. On the current model. This method will actually run validation rules over data, not just return the messages.
Parameters
-
array
$data The data to be checked for errors
-
bool
$newRecord optional whether the data to be validated is new or to be updated.
Returns
array
field() ¶ public
field(string $name, Cake\Validation\ValidationSet|null $set = null): Cake\Validation\ValidationSet
Returns a ValidationSet object containing all validation rules for a field, if passed a ValidationSet as second argument, it will replace any other rule set defined before
Parameters
-
string
$name [optional] The fieldname to fetch.
-
Cake\Validation\ValidationSet|null
$set optional The set of rules for field
Returns
Cake\Validation\ValidationSet
getDefaultProvider() ¶ public static
getDefaultProvider(string $name): object|string|null
Returns the default provider stored under that name if it exists.
Parameters
-
string
$name The name under which the provider should be retrieved.
Returns
object|string|null
getDefaultProviders() ¶ public static
getDefaultProviders(): array
Get the list of default providers.
Returns
array
getIterator() ¶ public
getIterator(): ArrayIterator
Returns an iterator for each of the fields to be validated
Returns
ArrayIterator
getProvider() ¶ public
getProvider(string $name): object|string|null
Returns the provider stored under that name if it exists.
Parameters
-
string
$name The name under which the provider should be set.
Returns
object|string|null
greaterThan() ¶ public
greaterThan(string $field, int|float $value, string|null $message = null, string|callable|null $when = null): $this
Add a greater than comparison rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
int|float
$value The value user data must be greater than.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
greaterThanOrEqual() ¶ public
greaterThanOrEqual(string $field, int|float $value, string|null $message = null, string|callable|null $when = null): $this
Add a greater than or equal to comparison rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
int|float
$value The value user data must be greater than or equal to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
hasAtLeast() ¶ public
hasAtLeast(string $field, int $count, string|null $message = null, string|callable|null $when = null): $this
Add a validation rule to ensure that a field is an array containing at least the specified amount of elements
Parameters
-
string
$field The field you want to apply the rule to.
-
int
$count The number of elements the array should at least have
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
hasAtMost() ¶ public
hasAtMost(string $field, int $count, string|null $message = null, string|callable|null $when = null): $this
Add a validation rule to ensure that a field is an array containing at most the specified amount of elements
Parameters
-
string
$field The field you want to apply the rule to.
-
int
$count The number maximum amount of elements the field should have
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
hasField() ¶ public
hasField(string $name): bool
Check whether or not a validator contains any rules for the given field.
Parameters
-
string
$name The field name to check.
Returns
bool
hexColor() ¶ public
hexColor(string $field, string|null $message = null, string|callable|null $when = null): $this
Add a validation rule to ensure a field is a 6 digits hex color value.
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
inList() ¶ public
inList(string $field, array $list, string|null $message = null, string|callable|null $when = null): $this
Add a validation rule to ensure the field value is within a whitelist.
Parameters
-
string
$field The field you want to apply the rule to.
-
array
$list The list of valid options.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
integer() ¶ public
integer(string $field, string|null $message = null, string|callable|null $when = null): $this
Add a validation rule to ensure a field is an integer value.
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
ip() ¶ public
ip(string $field, string|null $message = null, string|callable|null $when = null): $this
Add an IP validation rule to a field.
This rule will accept both IPv4 and IPv6 addresses.
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
ipv4() ¶ public
ipv4(string $field, string|null $message = null, string|callable|null $when = null): $this
Add an IPv4 validation rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
ipv6() ¶ public
ipv6(string $field, string|null $message = null, string|callable|null $when = null): $this
Add an IPv6 validation rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
isArray() ¶ public
isArray(string $field, string|null $message = null, string|callable|null $when = null): $this
Add a validation rule to ensure that a field contains an array.
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
isEmptyAllowed() ¶ public
isEmptyAllowed(string $field, bool $newRecord): bool
Returns whether or not a field can be left empty for a new or already existing record.
Parameters
-
string
$field Field name.
-
bool
$newRecord whether the data to be validated is new or to be updated.
Returns
bool
isPresenceRequired() ¶ public
isPresenceRequired(string $field, bool $newRecord): bool
Returns whether or not a field can be left out for a new or already existing record.
Parameters
-
string
$field Field name.
-
bool
$newRecord Whether the data to be validated is new or to be updated.
Returns
bool
latLong() ¶ public
latLong(string $field, string|null $message = null, string|callable|null $when = null): $this
Add a validation rule to ensure the field is a lat/long tuple.
e.g. <lat>, <lng>
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
latitude() ¶ public
latitude(string $field, string|null $message = null, string|callable|null $when = null): $this
Add a validation rule to ensure the field is a latitude.
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
lengthBetween() ¶ public
lengthBetween(string $field, array $range, string|null $message = null, string|callable|null $when = null): $this
Add an rule that ensures a string length is within a range.
Parameters
-
string
$field The field you want to apply the rule to.
-
array
$range The inclusive minimum and maximum length you want permitted.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
lessThan() ¶ public
lessThan(string $field, int|float $value, string|null $message = null, string|callable|null $when = null): $this
Add a less than comparison rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
int|float
$value The value user data must be less than.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
lessThanOrEqual() ¶ public
lessThanOrEqual(string $field, int|float $value, string|null $message = null, string|callable|null $when = null): $this
Add a less than or equal comparison rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
int|float
$value The value user data must be less than or equal to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
localizedTime() ¶ public
localizedTime(string $field, string $type = 'datetime', string|null $message = null, string|callable|null $when = null): $this
Add a localized time, date or datetime format validation rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
string
$type optional Parser type, one out of 'date', 'time', and 'datetime'
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
longitude() ¶ public
longitude(string $field, string|null $message = null, string|callable|null $when = null): $this
Add a validation rule to ensure the field is a longitude.
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
maxLength() ¶ public
maxLength(string $field, int $max, string|null $message = null, string|callable|null $when = null): $this
Add a string length validation rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
int
$max The maximum length allowed.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
maxLengthBytes() ¶ public
maxLengthBytes(string $field, int $max, string|null $message = null, string|callable|null $when = null): $this
Add a string length validation rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
int
$max The maximum length allowed.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
minLength() ¶ public
minLength(string $field, int $min, string|null $message = null, string|callable|null $when = null): $this
Add a string length validation rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
int
$min The minimum length required.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
minLengthBytes() ¶ public
minLengthBytes(string $field, int $min, string|null $message = null, string|callable|null $when = null): $this
Add a string length validation rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
int
$min The minimum length required.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
multipleOptions() ¶ public
multipleOptions(string $field, array $options = [], string|null $message = null, string|callable|null $when = null): $this
Add a validation rule for a multiple select. Comparison is case sensitive by default.
Parameters
-
string
$field The field you want to apply the rule to.
-
array
$options optional The options for the validator. Includes the options defined in \Cake\Validation\Validation::multiple() and the
caseInsensitive
parameter.-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
naturalNumber() ¶ public
naturalNumber(string $field, string|null $message = null, string|callable|null $when = null): $this
Add a natural number validation rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
nonNegativeInteger() ¶ public
nonNegativeInteger(string $field, string|null $message = null, string|callable|null $when = null): $this
Add a validation rule to ensure a field is a non negative integer.
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
notBlank() ¶ public
notBlank(string $field, string|null $message = null, string|callable|null $when = null): $this
Add a notBlank rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
notEmpty() ¶ public
notEmpty(string|array $field, string|null $message = null, bool|string|callable $when = false): $this
Sets a field to require a non-empty value. You can also pass array. Using an array will let you provide the following keys:
when
individual when condition for fieldmessage
individual error message for field
You can also set when
and message
for all passed fields, the individual setting
takes precedence over group settings.
This is the opposite of allowEmpty()
which allows a field to be empty.
By using $mode equal to 'create' or 'update', you can make fields required
when records are first created, or when they are updated.
Example:
$message = 'This field cannot be empty';
// Email cannot be empty
$validator->notEmpty('email');
// Email can be empty on update, but not create
$validator->notEmpty('email', $message, 'create');
// Email can be empty on create, but required on update.
$validator->notEmpty('email', $message, 'update');
// Email and title can be empty on create, but are required on update.
$validator->notEmpty(['email', 'title'], $message, 'update');
// Email can be empty on create, title must always be not empty
$validator->notEmpty(
[
'email',
'title' => [
'when' => true,
'message' => 'Title cannot be empty'
]
],
$message,
'update'
);
It is possible to conditionally disallow emptiness on a field by passing a callback as the third argument. The callback will receive the validation context array as argument:
$validator->notEmpty('email', 'Email is required', function ($context) {
return $context['newRecord'] && $context['data']['role'] !== 'admin';
});
Because this and allowEmpty()
modify the same internal state, the last
method called will take precedence.
Parameters
-
string|array
$field the name of the field or list of fields
-
string|null
$message optional The message to show if the field is not
-
bool|string|callable
$when optional Indicates when the field is not allowed to be empty. Valid values are true (always), 'create', 'update'. If a callable is passed then the field will allowed to be empty only when the callback returns false.
Returns
$this
notEquals() ¶ public
notEquals(string $field, int|float $value, string|null $message = null, string|callable|null $when = null): $this
Add a not equal to comparison rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
int|float
$value The value user data must be not be equal to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
numeric() ¶ public
numeric(string $field, string|null $message = null, string|callable|null $when = null): $this
Add a numeric value validation rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
offsetExists() ¶ public
offsetExists(string $field): bool
Returns whether a rule set is defined for a field or not
Parameters
-
string
$field name of the field to check
Returns
bool
offsetGet() ¶ public
offsetGet(string $field): Cake\Validation\ValidationSet
Returns the rule set for a field
Parameters
-
string
$field name of the field to check
Returns
Cake\Validation\ValidationSet
offsetSet() ¶ public
offsetSet(string $field, arrayCake\Validation\ValidationSet $rules): void
Sets the rule set for a field
Parameters
-
string
$field name of the field to set
-
arrayCake\Validation\ValidationSet
$rules set of rules to apply to field
Returns
void
offsetUnset() ¶ public
offsetUnset(string $field): void
Unsets the rule set for a field
Parameters
-
string
$field name of the field to unset
Returns
void
provider() ¶ public
provider(string $name, null|object|string $object = null): $this|object|string|null
Associates an object to a name so it can be used as a provider. Providers are objects or class names that can contain methods used during validation of for deciding whether a validation rule can be applied. All validation methods, when called will receive the full list of providers stored in this validator.
If called with no arguments, it will return the provider stored under that name if it exists, otherwise it returns this instance of chaining.
Parameters
-
string
$name The name under which the provider should be set.
-
null|object|string
$object optional Provider object or class name.
Returns
$this|object|string|null
range() ¶ public
range(string $field, array $range, string|null $message = null, string|callable|null $when = null): $this
Add a validation rule to ensure a field is within a numeric range
Parameters
-
string
$field The field you want to apply the rule to.
-
array
$range The inclusive upper and lower bounds of the valid range.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
regex() ¶ public
regex(string $field, string $regex, string|null $message = null, string|callable|null $when = null): $this
Returns whether or not a field matches against a regular expression.
Parameters
-
string
$field Field name.
-
string
$regex Regular expression.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
remove() ¶ public
remove(string $field, string|null $rule = null): $this
Removes a rule from the set by its name
Example:
$validator
->remove('title', 'required')
->remove('user_id')
Parameters
-
string
$field The name of the field from which the rule will be removed
-
string|null
$rule optional the name of the rule to be removed
Returns
$this
requirePresence() ¶ public
requirePresence(string|array $field, bool|string|callable $mode = true, string|null $message = null): $this
Sets whether a field is required to be present in data array. You can also pass array. Using an array will let you provide the following keys:
mode
individual mode for fieldmessage
individual error message for field
You can also set mode and message for all passed fields, the individual setting takes precedence over group settings.
Parameters
-
string|array
$field the name of the field or list of fields.
-
bool|string|callable
$mode optional Valid values are true, false, 'create', 'update'. If a callable is passed then the field will be required only when the callback returns true.
-
string|null
$message optional The message to show if the field presence validation fails.
Returns
$this
sameAs() ¶ public
sameAs(mixed $field, mixed $secondField, string|null $message = null, string|callable|null $when = null): $this
Add a rule to compare two fields to each other.
If both fields have the exact same value the rule will pass.
Parameters
-
mixed
$field The field you want to apply the rule to.
-
mixed
$secondField The field you want to compare against.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
scalar() ¶ public
scalar(string $field, string|null $message = null, string|callable|null $when = null): $this
Add a validation rule to ensure that a field contains a scalar.
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
setProvider() ¶ public
setProvider(string $name, object|string $object): $this
Associates an object to a name so it can be used as a provider. Providers are objects or class names that can contain methods used during validation of for deciding whether a validation rule can be applied. All validation methods, when called will receive the full list of providers stored in this validator.
Parameters
-
string
$name The name under which the provider should be set.
-
object|string
$object Provider object or class name.
Returns
$this
time() ¶ public
time(string $field, string|null $message = null, string|callable|null $when = null): $this
Add a time format validation rule to a field.
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
uploadedFile() ¶ public
uploadedFile(string $field, array $options, string|null $message = null, string|callable|null $when = null): $this
Add a validation rule to ensure the field is an uploaded file
For options see Cake\Validation\Validation::uploadedFile()
Parameters
-
string
$field The field you want to apply the rule to.
-
array
$options An array of options.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
url() ¶ public
url(string $field, string|null $message = null, string|callable|null $when = null): $this
Add a validation rule to ensure a field is a URL.
This validator does not require a protocol.
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
urlWithProtocol() ¶ public
urlWithProtocol(string $field, string|null $message = null, string|callable|null $when = null): $this
Add a validation rule to ensure a field is a URL.
This validator requires the URL to have a protocol.
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
utf8() ¶ public
utf8(string $field, string|null $message = null, string|callable|null $when = null): $this
Add a validation rule to ensure a field contains only BMP utf8 bytes
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
utf8Extended() ¶ public
utf8Extended(string $field, string|null $message = null, string|callable|null $when = null): $this
Add a validation rule to ensure a field contains only utf8 bytes.
This rule will accept 3 and 4 byte UTF8 sequences, which are necessary for emoji.
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
uuid() ¶ public
uuid(string $field, string|null $message = null, string|callable|null $when = null): $this
Add a validation rule to ensure the field is a UUID
Parameters
-
string
$field The field you want to apply the rule to.
-
string|null
$message optional The error message when the rule fails.
-
string|callable|null
$when optional Either 'create' or 'update' or a callable that returns true when the validation rule should be applied.
Returns
$this
See Also
Property Detail
$_allowEmptyMessages ¶ protected
Contains the validation messages associated with checking the emptiness for each corresponding field.
Type
array
$_defaultProviders ¶ protected static
An associative array of objects or classes used as a default provider list
Type
array
$_presenceMessages ¶ protected
Contains the validation messages associated with checking the presence for each corresponding field.
Type
array
$_providers ¶ protected
An associative array of objects or classes containing methods used for validation
Type
array
$_useI18n ¶ protected
Whether or not to use I18n functions for translating default error messages
Type
bool