On this page
Class Validation
Validation Class. Used for validation of model data
Offers different validation methods.
Constants summary
-
string
COMPARE_EQUAL'=='
-
string
COMPARE_GREATER'>'
-
string
COMPARE_GREATER_OR_EQUAL'>='
-
string
COMPARE_LESS'<'
-
string
COMPARE_LESS_OR_EQUAL'<='
-
string
COMPARE_NOT_EQUAL'!='
-
string
COMPARE_NOT_SAME'!=='
-
string
COMPARE_SAME'==='
-
string
DATETIME_ISO8601'iso8601'
-
string
DEFAULT_LOCALE'en_US'
Properties summary
Method Summary
-
_getDateString() protected static
Converts an array representing a date or datetime into a ISO string.
-
blank() public static
Returns true if field is left blank -OR- only whitespace characters are present in its value Whitespace characters include Space, Tab, Carriage Return, Newline
-
containsNonAlphaNumeric() public static
Checks if a string contains one or more non-alphanumeric characters.
-
decimal() public static
Checks that a value is a valid decimal. Both the sign and exponent are optional.
-
getFilename() protected static
Helper for reading the file out of the various file implementations we accept.
-
iban() public static
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
-
inList() public static
Checks if a value is in a given list. Comparison is case sensitive by default.
-
iso8601() public static
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()
-
maxLength() public static
Checks whether the length of a string (in characters) is smaller or equal to a maximal length.
-
maxLengthBytes() public static
Checks whether the length of a string (in bytes) is smaller or equal to a maximal length.
-
minLength() public static
Checks whether the length of a string (in characters) is greater or equal to a minimal length.
-
minLengthBytes() public static
Checks whether the length of a string (in bytes) is greater or equal to a minimal length.
-
notAsciiAlphaNumeric() public static
Checks that a doesn't contain any non-ascii alpha numeric characters
-
url() public static
Checks that a value is a valid URL according to https://www.w3.org/Addressing/URL/url-spec.txt
Method Detail
_check() protected static
_check(mixed $check, mixed $regex)
Runs a regular expression match.
Parameters
mixed
$check-
Value to check against the $regex expression
string
$regex-
Regular expression
Returns
bool
Success of match
_getDateString() protected static
_getDateString(mixed $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.
Parameters
array
$value-
The array representing a date or datetime.
Returns
string
_populateIp() protected static
_populateIp()
Lazily populate the IP address patterns used for validations
_reset() protected static
_reset()
Reset internal variables for another validation run.
alphaNumeric() public static
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.
Parameters
string
$check-
Value to check
Returns
bool
Success
ascii() public static
ascii(mixed $value)
Check that the input value is within the ascii byte range.
This method will reject all non-string values.
Parameters
mixed
$value-
The value to check
Returns
bool
asciiAlphaNumeric() public static
asciiAlphaNumeric(mixed $check)
Checks that a string contains only ascii integer or letters.
Parameters
mixed
$check-
Value to check
Returns
bool
Success
blank() public static
blank(mixed $check)
Returns true if field is left blank -OR- only whitespace characters are present in its value Whitespace characters include Space, Tab, Carriage Return, Newline
Parameters
string
$check-
Value to check
Returns
bool
Success
boolean() public static
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.
Parameters
bool|int|string
$check-
Value to check.
array
$booleanValues optional-
List of valid boolean values, defaults to
[true, false, 0, 1, '0', '1']
.
Returns
bool
Success.
cc() public static
cc(mixed $check, mixed $type, mixed $deep, mixed $regex)
Backwards compatibility wrapper for Validation::creditCard().
Parameters
string
$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 can also be passed, this will be used instead of the defined regex values
Returns
bool
Success
See Also
compareFields() public static
compareFields(mixed $check, mixed $field, mixed $operator, mixed $context)
Compare one field to another.
Return true if the comparison matches the expected result.
Parameters
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.
Returns
bool
compareWith() public static
compareWith(mixed $check, mixed $field, mixed $context)
Compare one field to another.
If both fields have exactly the same value this method will return true.
Parameters
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.
Returns
bool
comparison() public static
comparison(mixed $check1, mixed $operator, mixed $check2)
Used to compare 2 numeric values.
Parameters
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.
Returns
bool
Success
containsNonAlphaNumeric() public static
containsNonAlphaNumeric(mixed $check, mixed $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
Parameters
string
$check-
Value to check
int
$count optional-
Number of non-alphanumerics to check for
Returns
bool
Success
creditCard() public static
creditCard(mixed $check, mixed $type, mixed $deep, mixed $regex)
Validation of credit card numbers.
Returns true if $check is in the proper credit card format.
Parameters
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 can also be passed, this will be used instead of the defined regex values
Returns
bool
Success
See Also
custom() public static
custom(mixed $check, mixed $regex)
Used when a custom regular expression is needed.
Parameters
string
$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
Returns
bool
Success
date() public static
date(mixed $check, mixed $format, mixed $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.
Formats:
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 separators
Parameters
mixed
$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.
Returns
bool
Success
datetime() public static
datetime(mixed $check, mixed $dateFormat, mixed $regex)
Validates a datetime value
All values matching the "date" core validation rule, and the "time" one will be valid
Parameters
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.
Returns
bool
True if the value is valid, false otherwise
See Also
\Cake\Validation\Validation::time()
decimal() public static
decimal(mixed $check, mixed $places, mixed $regex)
Checks that a value is a valid decimal. Both the sign and exponent are optional.
Valid Places:
- null => Any number of decimal places, including none. The '.' is not required.
- true => Any number of decimal places greater than 0, or a float|double. The '.' is required.
- 1..N => Exactly that many number of decimal places. The '.' is required.
Parameters
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.
Returns
bool
Success
email() public static
email(mixed $check, mixed $deep, mixed $regex)
Validates for an email address.
Only uses getmxrr() checking for deep validation, or any PHP version on a non-windows distribution
Parameters
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)
Returns
bool
Success
equalTo() public static
equalTo(mixed $check, mixed $comparedTo)
Checks that value is exactly $comparedTo.
Parameters
mixed
$check-
Value to check
mixed
$comparedTo-
Value to compare
Returns
bool
Success
extension() public static
extension(mixed $check, mixed $extensions)
Checks that value has a valid file extension.
Parameters
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'
Returns
bool
Success
falsey() public static
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.
Parameters
bool|int|string
$check-
Value to check.
array
$falseyValues optional-
List of valid falsey values, defaults to
[false, 0, '0']
.
Returns
bool
Success.
fileSize() public static
fileSize(mixed $check, mixed $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.
Parameters
string|array|\Psr\Http\Message\UploadedFileInterface
$check-
Value to check.
string|null
$operator optional-
See
Validation::comparison()
. int|string|null
$size optional-
Size in bytes or human readable string like '5MB'.
Returns
bool
Success
geoCoordinate() public static
geoCoordinate(mixed $value, array $options)
Validates a geographic coordinate.
Supported formats:
<latitude>, <longitude>
Example:-25.274398, 133.775136
Options
type
- A string of the coordinate format, right now onlylatLong
.format
- By defaultboth
, can belong
andlat
as well to validate only a part of the coordinate.
Parameters
mixed
$value-
Geographic location as string
array
$options optional-
Options for the validation logic.
Returns
bool
getFilename() protected static
getFilename(mixed $check)
Helper for reading the file out of the various file implementations we accept.
Parameters
string|array|\Psr\Http\Message\UploadedFileInterface
$check-
The data to read a filename out of.
Returns
string|false
Either the filename or false on failure.
hexColor() public static
hexColor(mixed $check)
Check that the input value is a 6 digits hex color.
Parameters
mixed
$check-
The value to check
Returns
bool
Success
iban() public static
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
Parameters
mixed
$check-
The value to check
Returns
bool
Success
imageHeight() public static
imageHeight(mixed $file, mixed $operator, mixed $height)
Validates the image width.
Parameters
array
$file-
The uploaded file data from PHP.
string
$operator-
Comparison operator.
int
$height-
Min or max width.
Returns
bool
imageSize() public static
imageSize(mixed $file, mixed $options)
Validates the size of an uploaded image.
Parameters
mixed
$file-
The uploaded file data from PHP.
array
$options-
Options to validate width and height.
Returns
bool
Throws
InvalidArgumentException
imageWidth() public static
imageWidth(mixed $file, mixed $operator, mixed $width)
Validates the image width.
Parameters
array
$file-
The uploaded file data from PHP.
string
$operator-
Comparison operator.
int
$width-
Min or max width.
Returns
bool
inList() public static
inList(mixed $check, array $list, mixed $caseInsensitive)
Checks if a value is in a given list. Comparison is case sensitive by default.
Parameters
mixed
$check-
Value to check.
string[]
$list-
List to check against.
bool
$caseInsensitive optional-
Set to true for case insensitive comparison.
Returns
bool
Success.
ip() public static
ip(mixed $check, mixed $type)
Validation of an IP address.
Parameters
mixed
$check-
The string to test.
string
$type optional-
The IP Protocol version to validate against
Returns
bool
Success
isArray() public static
isArray(mixed $value)
Check that the input value is an array.
Parameters
mixed
$value-
The value to check
Returns
bool
isInteger() public static
isInteger(mixed $value)
Check that the input value is an integer
This method will accept strings that contain only integer data as well.
Parameters
mixed
$value-
The value to check
Returns
bool
isScalar() public static
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.
Parameters
mixed
$value-
The value to check
Returns
bool
iso8601() public static
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()
Parameters
mixed
$check-
Value to check
Returns
bool
True if the value is valid, false otherwise
See Also
credits: https://www.myintervals.com/blog/2009/05/20/iso-8601-date-validation-that-doesnt-suck/
latitude() public static
latitude(mixed $value, array $options)
Convenience method for latitude validation.
Parameters
mixed
$value-
Latitude as string
array
$options optional-
Options for the validation logic.
Returns
bool
See Also
Links
lengthBetween() public static
lengthBetween(mixed $check, mixed $min, mixed $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,
Parameters
mixed
$check-
Value to check for length
int
$min-
Minimum value in range (inclusive)
int
$max-
Maximum value in range (inclusive)
Returns
bool
Success
localizedTime() public static
localizedTime(mixed $check, mixed $type, mixed $format)
Date and/or time string validation.
Uses I18n::Time
to parse the date. This means parsing is locale dependent.
Parameters
string|\DateTime
$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
Returns
bool
Success
Throws
InvalidArgumentException
when unsupported $type given
See Also
\Cake\I18n\Time::parseTime()
\Cake\I18n\Time::parseDateTime()
longitude() public static
longitude(mixed $value, array $options)
Convenience method for longitude validation.
Parameters
mixed
$value-
Latitude as string
array
$options optional-
Options for the validation logic.
Returns
bool
See Also
Links
luhn() public static
luhn(mixed $check)
Luhn algorithm
Parameters
mixed
$check-
Value to check.
Returns
bool
Success
See Also
maxLength() public static
maxLength(mixed $check, mixed $max)
Checks whether the length of a string (in characters) is smaller or equal to a maximal length.
Parameters
mixed
$check-
The string to test
int
$max-
The maximal string length
Returns
bool
Success
maxLengthBytes() public static
maxLengthBytes(mixed $check, mixed $max)
Checks whether the length of a string (in bytes) is smaller or equal to a maximal length.
Parameters
mixed
$check-
The string to test
int
$max-
The maximal string length
Returns
bool
Success
mimeType() public static
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.
Parameters
string|array|\Psr\Http\Message\UploadedFileInterface
$check-
Value to check.
array|string
$mimeTypes optional-
Array of mime types or regex pattern to check.
Returns
bool
Success
Throws
RuntimeException
when mime type can not be determined.
LogicException
when ext/fileinfo is missing
minLength() public static
minLength(mixed $check, mixed $min)
Checks whether the length of a string (in characters) is greater or equal to a minimal length.
Parameters
mixed
$check-
The string to test
int
$min-
The minimal string length
Returns
bool
Success
minLengthBytes() public static
minLengthBytes(mixed $check, mixed $min)
Checks whether the length of a string (in bytes) is greater or equal to a minimal length.
Parameters
mixed
$check-
The string to test
int
$min-
The minimal string length (in bytes)
Returns
bool
Success
money() public static
money(mixed $check, mixed $symbolPosition)
Checks that a value is a monetary amount.
Parameters
mixed
$check-
Value to check
string
$symbolPosition optional-
Where symbol is located (left/right)
Returns
bool
Success
multiple() public static
multiple(mixed $check, array $options, mixed $caseInsensitive)
Validates a multiple select. Comparison is case sensitive by default.
Valid Options
- in => provide a list of choices that selections must be made from
- max => maximum number of non-zero choices that can be made
- min => minimum number of non-zero choices that can be made
Parameters
mixed
$check-
Value to check
array
$options optional-
Options for the check.
bool
$caseInsensitive optional-
Set to true for case insensitive comparison.
Returns
bool
Success
naturalNumber() public static
naturalNumber(mixed $check, mixed $allowZero)
Checks if a value is a natural number.
Parameters
mixed
$check-
Value to check
bool
$allowZero optional-
Set true to allow zero, defaults to false
Returns
bool
Success
See Also
notAlphaNumeric() public static
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.
Parameters
mixed
$check-
Value to check
Returns
bool
Success
notAsciiAlphaNumeric() public static
notAsciiAlphaNumeric(mixed $check)
Checks that a doesn't contain any non-ascii alpha numeric characters
Parameters
mixed
$check-
Value to check
Returns
bool
Success
notBlank() public static
notBlank(mixed $check)
Checks that a string contains something other than whitespace
Returns true if string contains something other than whitespace
Parameters
mixed
$check-
Value to check
Returns
bool
Success
notEmpty() public static
notEmpty(mixed $check)
Backwards compatibility wrapper for Validation::notBlank().
Parameters
string
$check-
Value to check.
Returns
bool
Success.
See Also
numElements() public static
numElements(mixed $check, mixed $operator, mixed $expectedCount)
Used to check the count of a given value of type array or Countable.
Parameters
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.
Returns
bool
Success
numeric() public static
numeric(mixed $check)
Checks if a value is numeric.
Parameters
mixed
$check-
Value to check
Returns
bool
Success
range() public static
range(mixed $check, mixed $lower, mixed $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.
Parameters
string
$check-
Value to check
int|float|null
$lower optional-
Lower limit
int|float|null
$upper optional-
Upper limit
Returns
bool
Success
time() public static
time(mixed $check)
Time validation, determines if the string passed is a valid time.
Validates time as 24hr (HH:MM) or am/pm ([H]H:MM[a|p]m) Does not allow/validate seconds.
Parameters
string|\DateTimeInterface
$check-
a valid time string/object
Returns
bool
Success
truthy() public static
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.
Parameters
bool|int|string
$check-
Value to check.
array
$truthyValues optional-
List of valid truthy values, defaults to
[true, 1, '1']
.
Returns
bool
Success.
uploadError() public static
uploadError(mixed $check, mixed $allowNoFile)
Checking for upload errors
Parameters
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.
Returns
bool
See Also
uploadedFile() public static
uploadedFile(mixed $file, array $options)
Validate an uploaded file.
Helps join uploadError
, fileSize
and mimeType
into one higher level validation method.
Options
types
- An array of valid mime types. If empty all types will be accepted. Thetype
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.
Parameters
mixed
$file-
The uploaded file data from PHP.
array
$options optional-
An array of options for the validation.
Returns
bool
url() public static
url(mixed $check, mixed $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:
- a valid, optional, scheme
- a valid ip address OR a valid domain name as defined by section 2.3.1 of https://www.ietf.org/rfc/rfc1035.txt with an optional port number
- an optional valid path
- an optional query string (get parameters)
- an optional fragment (anchor tag) as defined in RFC 3986
Parameters
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)
Returns
bool
Success
Links
userDefined() public static
userDefined(mixed $check, mixed $object, mixed $method, mixed $args)
Runs an user-defined validation.
Parameters
string|array
$check-
value that will be validated in user-defined methods.
object
$object-
class that holds validation method
string
$method-
class method name for validation to run
array|null
$args optional-
arguments to send to method
Returns
mixed
user-defined class class method returns
utf8() public static
utf8(mixed $value, array $options)
Check that the input value is a utf8 string.
This method will reject all non-string values.
Options
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.
Parameters
mixed
$value-
The value to check
array
$options optional-
An array of options. See above for the supported options.
Returns
bool
uuid() public static
uuid(mixed $check)
Checks that a value is a valid UUID - https://tools.ietf.org/html/rfc4122
Parameters
mixed
$check-
Value to check
Returns
bool
Success
Property Detail
$_pattern protected static
Some complex patterns needed in multiple places
Type
array
$errors public static
Holds an array of errors messages set in this class.
These are used for debugging purposes
Type
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/3.9/class-Cake.Validation.Validation.html