Validation Class. Used for validation of model data
Offers different validation methods.
string
'=='
string
'>'
string
'>='
string
'<'
string
'<='
string
'!='
string
'!=='
string
'==='
string
'iso8601'
string
'en_US'
Converts an array representing a date or datetime into a ISO string.
Checks if a string contains one or more non-alphanumeric characters.
Checks that a value is a valid decimal. Both the sign and exponent are optional.
Helper for reading the file out of the various file implementations we accept.
Check that the input value has a valid International Bank Account Number IBAN syntax Requirements are uppercase, no whitespaces, max length 34, country code and checksum exist at right spots, body matches against checksum via Mod97-10 algorithm
Checks if a value is in a given list. Comparison is case sensitive by default.
Validates an iso8601 datetime format ISO8601 recognize datetime like 2019 as a valid date. To validate and check date integrity, use @see \Cake\Validation\Validation::datetime()
Checks whether the length of a string (in characters) is smaller or equal to a maximal length.
Checks whether the length of a string (in bytes) is smaller or equal to a maximal length.
Checks whether the length of a string (in characters) is greater or equal to a minimal length.
Checks whether the length of a string (in bytes) is greater or equal to a minimal length.
Checks that a doesn't contain any non-ascii alpha numeric characters
Checks that a value is a valid URL according to https://www.w3.org/Addressing/URL/url-spec.txt
_check(mixed $check, string $regex)
Runs a regular expression match.
mixed
$check Value to check against the $regex expression
string
$regex Regular expression
bool
Success of match
_getDateString(array $value)
Converts an array representing a date or datetime into a ISO string.
The arrays are typically sent for validation from a form generated by the CakePHP FormHelper.
array
$value The array representing a date or datetime.
string
_populateIp()
Lazily populate the IP address patterns used for validations
_reset()
Reset internal variables for another validation run.
alphaNumeric(mixed $check)
Checks that a string contains only integer or letters.
This method's definition of letters and integers includes unicode characters. Use asciiAlphaNumeric()
if you want to exclude unicode.
mixed
$check Value to check
bool
Success
ascii(mixed $value)
Check that the input value is within the ascii byte range.
This method will reject all non-string values.
mixed
$value The value to check
bool
asciiAlphaNumeric(mixed $check)
Checks that a string contains only ascii integer or letters.
mixed
$check Value to check
bool
Success
boolean(mixed $check, array $booleanValues)
Validates if passed value is boolean-like.
The list of what is considered to be boolean values, may be set via $booleanValues.
bool|int|string
$check Value to check.
array
$booleanValues optional List of valid boolean values, defaults to [true, false, 0, 1, '0', '1']
.
bool
Success.
compareFields(mixed $check, string $field, string $operator, array $context)
Compare one field to another.
Return true if the comparison matches the expected result.
mixed
$check The value to find in $field.
string
$field The field to check $check against. This field must be present in $context.
string
$operator Comparison operator.
array
$context The validation context.
bool
compareWith(mixed $check, string $field, array $context)
Compare one field to another.
If both fields have exactly the same value this method will return true.
mixed
$check The value to find in $field.
string
$field The field to check $check against. This field must be present in $context.
array
$context The validation context.
bool
comparison(mixed $check1, string $operator, mixed $check2)
Used to compare 2 numeric values.
string|int
$check1 The left value to compare.
string
$operator Can be either a word or operand is greater >, is less <, greater or equal >= less or equal <=, is less <, equal to ==, not equal !=
string|int
$check2 The right value to compare.
bool
Success
containsNonAlphaNumeric(mixed $check, int $count)
Checks if a string contains one or more non-alphanumeric characters.
Returns true if string contains at least the specified number of non-alphanumeric characters
mixed
$check Value to check
int
$count optional Number of non-alphanumerics to check for
bool
Success
creditCard(mixed $check, mixed $type, bool $deep, ?string $regex)
Validation of credit card numbers.
Returns true if $check is in the proper credit card format.
mixed
$check credit card number to validate
string|string[]
$type optional 'all' may be passed as a string, defaults to fast which checks format of most major credit cards if an array is used only the values of the array are checked. Example: ['amex', 'bankcard', 'maestro']
bool
$deep optional set to true this will check the Luhn algorithm of the credit card.
string|null
$regex optional A custom regex, this will be used instead of the defined regex values.
bool
Success
custom(mixed $check, ?string $regex)
Used when a custom regular expression is needed.
mixed
$check The value to check.
string|null
$regex optional If $check is passed as a string, $regex must also be set to valid regular expression
bool
Success
date(mixed $check, mixed $format, ?string $regex)
Date validation, determines if the string passed is a valid date.
keys that expect full month, day and year will validate leap years.
Years are valid from 0001 to 2999.
dmy
27-12-2006 or 27-12-06 separators can be a space, period, dash, forward slashmdy
12-27-2006 or 12-27-06 separators can be a space, period, dash, forward slashymd
2006-12-27 or 06-12-27 separators can be a space, period, dash, forward slashdMy
27 December 2006 or 27 Dec 2006Mdy
December 27, 2006 or Dec 27, 2006 comma is optionalMy
December 2006 or Dec 2006my
12/2006 or 12/06 separators can be a space, period, dash, forward slashym
2006/12 or 06/12 separators can be a space, period, dash, forward slashy
2006 just the year without any separatorsmixed
$check a valid date string/object
string|array
$format optional Use a string or an array of the keys above. Arrays should be passed as ['dmy', 'mdy', etc]
string|null
$regex optional If a custom regular expression is used this is the only validation that will occur.
bool
Success
datetime(mixed $check, mixed $dateFormat, ?string $regex)
Validates a datetime value
All values matching the "date" core validation rule, and the "time" one will be valid
mixed
$check Value to check
string|array
$dateFormat optional Format of the date part. See Validation::date() for more information. Or Validation::DATETIME_ISO8601
to validate an ISO8601 datetime value.
string|null
$regex optional Regex for the date part. If a custom regular expression is used this is the only validation that will occur.
bool
True if the value is valid, false otherwise
decimal(mixed $check, mixed $places, ?string $regex)
Checks that a value is a valid decimal. Both the sign and exponent are optional.
Valid Places:
mixed
$check The value the test for decimal.
int|true|null
$places optional Decimal places.
string|null
$regex optional If a custom regular expression is used, this is the only validation that will occur.
bool
Success
email(mixed $check, ?bool $deep, ?string $regex)
Validates for an email address.
Only uses getmxrr() checking for deep validation, or any PHP version on a non-windows distribution
mixed
$check Value to check
bool
$deep optional Perform a deeper validation (if true), by also checking availability of host
string|null
$regex optional Regex to use (if none it will use built in regex)
bool
Success
equalTo(mixed $check, mixed $comparedTo)
Checks that value is exactly $comparedTo.
mixed
$check Value to check
mixed
$comparedTo Value to compare
bool
Success
extension(mixed $check, array $extensions)
Checks that value has a valid file extension.
string|array|\Psr\Http\Message\UploadedFileInterface
$check Value to check
string[]
$extensions optional file extensions to allow. By default extensions are 'gif', 'jpeg', 'png', 'jpg'
bool
Success
falsey(mixed $check, array $falseyValues)
Validates if given value is falsey.
The list of what is considered to be falsey values, may be set via $falseyValues.
bool|int|string
$check Value to check.
array
$falseyValues optional List of valid falsey values, defaults to [false, 0, '0']
.
bool
Success.
fileSize(mixed $check, string $operator, mixed $size)
Checks the filesize
Will check the filesize of files/UploadedFileInterface instances by checking the filesize() on disk and not relying on the length reported by the client.
string|array|\Psr\Http\Message\UploadedFileInterface
$check Value to check.
string
$operator See Validation::comparison()
.
int|string
$size Size in bytes or human readable string like '5MB'.
bool
Success
geoCoordinate(mixed $value, array $options)
Validates a geographic coordinate.
Supported formats:
<latitude>, <longitude>
Example: -25.274398, 133.775136
type
- A string of the coordinate format, right now only latLong
.format
- By default both
, can be long
and lat
as well to validate only a part of the coordinate.mixed
$value Geographic location as string
array
$options optional Options for the validation logic.
bool
getFilename(mixed $check)
Helper for reading the file out of the various file implementations we accept.
string|array|\Psr\Http\Message\UploadedFileInterface
$check The data to read a filename out of.
string|false
Either the filename or false on failure.
hexColor(mixed $check)
Check that the input value is a 6 digits hex color.
mixed
$check The value to check
bool
Success
iban(mixed $check)
Check that the input value has a valid International Bank Account Number IBAN syntax Requirements are uppercase, no whitespaces, max length 34, country code and checksum exist at right spots, body matches against checksum via Mod97-10 algorithm
mixed
$check The value to check
bool
Success
imageHeight(array $file, string $operator, int $height)
Validates the image width.
array
$file The uploaded file data from PHP.
string
$operator Comparison operator.
int
$height Min or max width.
bool
imageSize(mixed $file, array $options)
Validates the size of an uploaded image.
mixed
$file The uploaded file data from PHP.
array
$options Options to validate width and height.
bool
InvalidArgumentException
imageWidth(array $file, string $operator, int $width)
Validates the image width.
array
$file The uploaded file data from PHP.
string
$operator Comparison operator.
int
$width Min or max width.
bool
inList(mixed $check, array $list, bool $caseInsensitive)
Checks if a value is in a given list. Comparison is case sensitive by default.
mixed
$check Value to check.
string[]
$list List to check against.
bool
$caseInsensitive optional Set to true for case insensitive comparison.
bool
Success.
ip(mixed $check, string $type)
Validation of an IP address.
mixed
$check The string to test.
string
$type optional The IP Protocol version to validate against
bool
Success
isArray(mixed $value)
Check that the input value is an array.
mixed
$value The value to check
bool
isInteger(mixed $value)
Check that the input value is an integer
This method will accept strings that contain only integer data as well.
mixed
$value The value to check
bool
isScalar(mixed $value)
Check that the input value is a scalar.
This method will accept integers, floats, strings and booleans, but not accept arrays, objects, resources and nulls.
mixed
$value The value to check
bool
iso8601(mixed $check)
Validates an iso8601 datetime format ISO8601 recognize datetime like 2019 as a valid date. To validate and check date integrity, use @see \Cake\Validation\Validation::datetime()
mixed
$check Value to check
bool
True if the value is valid, false otherwise
latitude(mixed $value, array $options)
Convenience method for latitude validation.
mixed
$value Latitude as string
array
$options optional Options for the validation logic.
bool
lengthBetween(mixed $check, int $min, int $max)
Checks that a string length is within specified range.
Spaces are included in the character count. Returns true if string matches value min, max, or between min and max,
mixed
$check Value to check for length
int
$min Minimum value in range (inclusive)
int
$max Maximum value in range (inclusive)
bool
Success
localizedTime(mixed $check, string $type, mixed $format)
Date and/or time string validation.
Uses I18n::Time
to parse the date. This means parsing is locale dependent.
mixed
$check a date string or object (will always pass)
string
$type optional Parser type, one out of 'date', 'time', and 'datetime'
string|int|null
$format optional any format accepted by IntlDateFormatter
bool
Success
InvalidArgumentException
longitude(mixed $value, array $options)
Convenience method for longitude validation.
mixed
$value Latitude as string
array
$options optional Options for the validation logic.
bool
luhn(mixed $check)
Luhn algorithm
mixed
$check Value to check.
bool
Success
maxLength(mixed $check, int $max)
Checks whether the length of a string (in characters) is smaller or equal to a maximal length.
mixed
$check The string to test
int
$max The maximal string length
bool
Success
maxLengthBytes(mixed $check, int $max)
Checks whether the length of a string (in bytes) is smaller or equal to a maximal length.
mixed
$check The string to test
int
$max The maximal string length
bool
Success
mimeType(mixed $check, mixed $mimeTypes)
Checks the mime type of a file.
Will check the mimetype of files/UploadedFileInterface instances by checking the using finfo on the file, not relying on the content-type sent by the client.
string|array|\Psr\Http\Message\UploadedFileInterface
$check Value to check.
array|string
$mimeTypes optional Array of mime types or regex pattern to check.
bool
Success
RuntimeException
LogicException
minLength(mixed $check, int $min)
Checks whether the length of a string (in characters) is greater or equal to a minimal length.
mixed
$check The string to test
int
$min The minimal string length
bool
Success
minLengthBytes(mixed $check, int $min)
Checks whether the length of a string (in bytes) is greater or equal to a minimal length.
mixed
$check The string to test
int
$min The minimal string length (in bytes)
bool
Success
money(mixed $check, string $symbolPosition)
Checks that a value is a monetary amount.
mixed
$check Value to check
string
$symbolPosition optional Where symbol is located (left/right)
bool
Success
multiple(mixed $check, array $options, bool $caseInsensitive)
Validates a multiple select. Comparison is case sensitive by default.
Valid Options
mixed
$check Value to check
array
$options optional Options for the check.
bool
$caseInsensitive optional Set to true for case insensitive comparison.
bool
Success
naturalNumber(mixed $check, bool $allowZero)
Checks if a value is a natural number.
mixed
$check Value to check
bool
$allowZero optional Set true to allow zero, defaults to false
bool
Success
notAlphaNumeric(mixed $check)
Checks that a doesn't contain any alpha numeric characters
This method's definition of letters and integers includes unicode characters. Use notAsciiAlphaNumeric()
if you want to exclude ascii only.
mixed
$check Value to check
bool
Success
notAsciiAlphaNumeric(mixed $check)
Checks that a doesn't contain any non-ascii alpha numeric characters
mixed
$check Value to check
bool
Success
notBlank(mixed $check)
Checks that a string contains something other than whitespace
Returns true if string contains something other than whitespace
mixed
$check Value to check
bool
Success
numElements(mixed $check, string $operator, int $expectedCount)
Used to check the count of a given value of type array or Countable.
mixed
$check The value to check the count on.
string
$operator Can be either a word or operand is greater >, is less <, greater or equal >= less or equal <=, is less <, equal to ==, not equal !=
int
$expectedCount The expected count value.
bool
Success
numeric(mixed $check)
Checks if a value is numeric.
mixed
$check Value to check
bool
Success
range(mixed $check, ?float $lower, ?float $upper)
Validates that a number is in specified range.
If $lower and $upper are set, the range is inclusive. If they are not set, will return true if $check is a legal finite on this platform.
mixed
$check Value to check
float|null
$lower optional Lower limit
float|null
$upper optional Upper limit
bool
Success
time(mixed $check)
Time validation, determines if the string passed is a valid time.
Validates time as 24hr (HH:MM[:SS][.FFFFFF]) or am/pm ([H]H:MM[a|p]m)
Seconds and fractional seconds (microseconds) are allowed but optional in 24hr format.
mixed
$check a valid time string/object
bool
Success
truthy(mixed $check, array $truthyValues)
Validates if given value is truthy.
The list of what is considered to be truthy values, may be set via $truthyValues.
bool|int|string
$check Value to check.
array
$truthyValues optional List of valid truthy values, defaults to [true, 1, '1']
.
bool
Success.
uploadError(mixed $check, bool $allowNoFile)
Checking for upload errors
string|array|\Psr\Http\Message\UploadedFileInterface
$check Value to check.
bool
$allowNoFile optional Set to true to allow UPLOAD_ERR_NO_FILE as a pass.
bool
uploadedFile(mixed $file, array $options)
Validate an uploaded file.
Helps join uploadError
, fileSize
and mimeType
into one higher level validation method.
types
- An array of valid mime types. If empty all types will be accepted. The type
will not be looked at, instead the file type will be checked with ext/finfo.minSize
- The minimum file size in bytes. Defaults to not checking.maxSize
- The maximum file size in bytes. Defaults to not checking.optional
- Whether or not this file is optional. Defaults to false. If true a missing file will pass the validator regardless of other constraints.mixed
$file The uploaded file data from PHP.
array
$options optional An array of options for the validation.
bool
url(mixed $check, bool $strict)
Checks that a value is a valid URL according to https://www.w3.org/Addressing/URL/url-spec.txt
The regex checks for the following component parts:
mixed
$check Value to check
bool
$strict optional Require URL to be prefixed by a valid scheme (one of http(s)/ftp(s)/file/news/gopher)
bool
Success
utf8(mixed $value, array $options)
Check that the input value is a utf8 string.
This method will reject all non-string values.
extended
- Disallow bytes higher within the basic multilingual plane. MySQL's older utf8 encoding type does not allow characters above the basic multilingual plane. Defaults to false.mixed
$value The value to check
array
$options optional An array of options. See above for the supported options.
bool
uuid(mixed $check)
Checks that a value is a valid UUID - https://tools.ietf.org/html/rfc4122
mixed
$check Value to check
bool
Success
Some complex patterns needed in multiple places
array
Holds an array of errors messages set in this class.
These are used for debugging purposes
array
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.1/class-Cake.Validation.Validation.html