CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Reporting Security Issues
    • Privacy Policy
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Get Involved
    • Issues (Github)
    • Bakery
    • Featured Resources
    • Training
    • Meetups
    • My CakePHP
    • CakeFest
    • Newsletter
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • Help & Support
    • Forum
    • Stack Overflow
    • IRC
    • Slack
    • Paid Support
CakePHP

C CakePHP 3.2 Red Velvet API

  • Project:
    • CakePHP
      • CakePHP
      • Authentication
      • Authorization
      • Chronos
      • Elastic Search
      • Queue
  • Version:
    • 3.2
      • 5.2
      • 5.1
      • 5.0
      • 4.6
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Namespaces

  • Global
  • Cake
    • Auth
    • Cache
    • Collection
    • Console
    • Controller
    • Core
    • Database
    • Datasource
    • Error
    • Event
    • Filesystem
    • Form
    • I18n
    • Log
    • Mailer
    • Network
    • ORM
    • Routing
    • Shell
    • TestSuite
    • Utility
    • Validation
    • View

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

Namespace: Cake\Validation
Link: http://book.cakephp.org/3.0/en/core-libraries/validation.html

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.

  • $_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

  • _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.

  • addNested() public

    Adds a nested validator.

  • addNestedMany() public

    Adds a nested validator.

  • allowEmpty() public

    Allows a field to be empty.

  • 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

  • getIterator() public

    Returns an iterator for each of the fields to be validated

  • 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.

  • 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.

  • minLength() 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.

  • 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

    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

  • 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.

  • sameAs() public

    Add a rule to compare two fields to each other.

  • 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

__construct() ¶ public

__construct()

Constructor

__debugInfo() ¶ public

__debugInfo(): array

Get the printable version of this object.

Returns
array

_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

_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, array|Cake\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 removed

array|string $name

The alias for a single rule or multiple rules array

array|Cake\Validation\ValidationRule $rule optional

the rule to add

Returns
$this

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 $field, bool|string|callable $when = true, string|null $message = null): $this

Allows a field to be empty.

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:

$validator->allowEmpty('email'); // Email can be empty
$validator->allowEmpty('email', 'create'); // Email can be empty on create
$validator->allowEmpty('email', 'update'); // Email can be empty on 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 $field

the name of the field

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
\Cake\Validation\Validation::alphaNumeric()

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
\Cake\Validation\Validation::ascii()

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
\Cake\Validation\Validation::boolean()

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
\Cake\Validation\Validation::containsNonAlphaNumeric()

count() ¶ public

count(): int

Returns the number of fields having validation rules

Returns
int

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
\Cake\Validation\Validation::cc()

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
\Cake\Validation\Validation::date()

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
\Cake\Validation\Validation::datetime()

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
\Cake\Validation\Validation::decimal()

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
\Cake\Validation\Validation::email()

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
\Cake\Validation\Validation::comparison()

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

getIterator() ¶ public

getIterator(): ArrayIterator

Returns an iterator for each of the fields to be validated

Returns
ArrayIterator

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
\Cake\Validation\Validation::comparison()

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
\Cake\Validation\Validation::comparison()

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
\Cake\Validation\Validation::numElements()

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
\Cake\Validation\Validation::numElements()

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

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
\Cake\Validation\Validation::inList()

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
\Cake\Validation\Validation::isInteger()

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
\Cake\Validation\Validation::ip()

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
\Cake\Validation\Validation::ip()

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
\Cake\Validation\Validation::ip()

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

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
\Cake\Validation\Validation::uuid()

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
\Cake\Validation\Validation::latitude()

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
\Cake\Validation\Validation::alphaNumeric()

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
\Cake\Validation\Validation::comparison()

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
\Cake\Validation\Validation::comparison()

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
\Cake\Validation\Validation::localizedTime()

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
\Cake\Validation\Validation::longitude()

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
\Cake\Validation\Validation::maxLength()

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
\Cake\Validation\Validation::minLength()

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
\Cake\Validation\Validation::multiple()

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
\Cake\Validation\Validation::naturalNumber()

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
\Cake\Validation\Validation::naturalNumber()

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
\Cake\Validation\Validation::notBlank()

notEmpty() ¶ public

notEmpty(string $field, string|null $message = null, bool|string|callable $when = false): $this

Sets a field to require a non-empty value.

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';
$validator->notEmpty('email'); // Email cannot be empty
$validator->notEmpty('email', $message, 'create'); // Email can be empty on update
$validator->notEmpty('email', $message, 'update'); // Email can be empty on create

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 $field

the name of the field

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 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
\Cake\Validation\Validation::comparison()

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
\Cake\Validation\Validation::numeric()

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, array|Cake\Validation\ValidationSet $rules): void

Sets the rule set for a field

Parameters
string $field

name of the field to set

array|Cake\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

providers() ¶ public

providers(): array

Get the list of providers in this validator.

Returns
array

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
\Cake\Validation\Validation::range()

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 $field, bool|string|callable $mode = true, string|null $message = null): $this

Sets whether a field is required to be present in data array.

Parameters
string $field

the name of the field

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
\Cake\Validation\Validation::compareWith()

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
\Cake\Validation\Validation::time()

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
\Cake\Validation\Validation::uploadedFile()

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
\Cake\Validation\Validation::url()

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
\Cake\Validation\Validation::url()

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
\Cake\Validation\Validation::utf8()

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
\Cake\Validation\Validation::utf8()

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
\Cake\Validation\Validation::uuid()

Property Detail

$_allowEmptyMessages ¶ protected

Contains the validation messages associated with checking the emptiness for each corresponding field.

Type
array

$_fields ¶ protected

Holds the ValidationSet objects array

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
OpenHub
Pingping
Linode
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Reporting Security Issues
  • Privacy Policy
  • Logos & Trademarks
  • Community
  • Get Involved
  • Issues (Github)
  • Bakery
  • Featured Resources
  • Training
  • Meetups
  • My CakePHP
  • CakeFest
  • Newsletter
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • Help & Support
  • Forum
  • Stack Overflow
  • IRC
  • Slack
  • Paid Support

Generated using CakePHP API Docs