ITEEDU

58.5. Validation Messages

Each validator which is based on Zend_Validate provides one or multiple messages in the case of a failed validation. You can use this information for setting own messages or when you have to translate the messages a validator can return. The following table lists all available messages which are returned by each validator.

表 58.1. Available Validation Messages

Validator Constant Message  
Alnum NOT_ALNUM '%value%' has not only alphabetic and digit characters  
STRING_EMPTY '%value%' is an empty string  
Alpha NOT_ALPHA '%value%' has not only alphabetic characters  
STRING_EMPTY '%value%' is an empty string  
Barcode --- messages are thrown by a subclass  
Barcode_Ean13 INVALID '%value%' is an invalid EAN-13 barcode  
INVALID_LENGTH '%value%' should be 13 characters  
NOT_NUMERIC '%value%' should contain only numeric characters  
Barcode_UpcA INVALID '%value%' is an invalid UPC-A barcode  
INVALID_LENGTH '%value%' should be 12 characters  
Between NOT_BETWEEN '%value%' is not between '%min%' and '%max%', inclusively  
NOT_BETWEEN_STRICT '%value%' is not strictly between '%min%' and '%max%'  
Ccnum LENGTH '%value%' must contain between 13 and 19 digits  
CHECKSUM Luhn algorithm (mod-10 checksum) failed on '%value%'  
Date FALSEFORMAT '%value%' does not fit given date format  
INVALID '%value%' does not appear to be a valid date  
NOT_YYYY_MM_DD '%value%' is not of the format YYYY-MM-DD  
Db_Abstract ERROR_NO_RECORD_FOUND No record matching %value% was found  
ERROR_RECORD_FOUND A record matching %value% was found  
Digits NOT_DIGITS '%value%' contains not only digit characters  
STRING_EMPTY '%value%' is an empty string  
EmailAddress INVALID '%value%' is not a valid email address in the basic format local-part@hostname  
INVALID_HOSTNAME '%hostname%' is not a valid hostname for email address '%value%'  
INVALID_MX_RECORD '%hostname%' does not appear to have a valid MX record for the email address '%value%'  
DOT_ATOM '%localPart%' not matched against dot-atom format  
QUOTED_STRING '%localPart%' not matched against quoted-string format  
INVALID_LOCAL_PART '%localPart%' is not a valid local part for email address '%value%'  
LENGTH_EXCEEDED '%value%' exceeds the allowed length  
File_Count TOO_MUCH Too much files, maximum '%max%' are allowed but '%count%' are given  
TOO_LESS Too less files, minimum '%min%' are expected but '%count%' are given  
File_Crc32 DOES_NOT_MATCH The file '%value%' does not match the given crc32 hashes  
NOT_DETECTED There was no crc32 hash detected for the given file  
NOT_FOUND The file '%value%' could not be found  
File_ExcludeExtension FALSE_EXTENSION The file '%value%' has a false extension  
NOT_FOUND The file '%value%' was not found  
File_ExcludeMimeType FALSE_TYPE The file '%value%' has a false mimetype of '%type%'  
NOT_DETECTED The mimetype of file '%value%' could not been detected  
NOT_READABLE The file '%value%' can not be read  
File_Exists DOES_NOT_EXIST The file '%value%' does not exist  
File_Extension FALSE_EXTENSION The file '%value%' has a false extension
NOT_FOUND The file '%value%' was not found
File_FilesSize TOO_BIG All files in sum should have a maximum size of '%max%' but '%size%' were detected  
TOO_SMALL All files in sum should have a minimum size of '%min%' but '%size%' were detected  
NOT_READABLE One or more files can not be read  
File_Hash DOES_NOT_MATCH The file '%value%' does not match the given hashes  
NOT_DETECTED There was no hash detected for the given file  
NOT_FOUND The file '%value%' could not be found  
File_ImageSize WIDTH_TOO_BIG Maximum allowed width for image '%value%' should be '%maxwidth%' but '%width%' detected  
WIDTH_TOO_SMALL Minimum expected width for image '%value%' should be '%minwidth%' but '%width%' detected  
HEIGHT_TOO_BIG Maximum allowed height for image '%value%' should be '%maxheight%' but '%height%' detected  
HEIGHT_TOO_SMALL Minimum expected height for image '%value%' should be '%minheight%' but '%height%' detected  
NOT_DETECTED The size of image '%value%' could not be detected  
NOT_READABLE The image '%value%' can not be read  
File_IsCompressed FALSE_TYPE The file '%value%' is not compressed, '%type%' detected  
NOT_DETECTED The mimetype of file '%value%' could not been detected  
NOT_READABLE The file '%value%' can not be read  
File_IsImage FALSE_TYPE The file '%value%' is no image, '%type%' detected  
NOT_DETECTED The mimetype of file '%value%' could not been detected  
NOT_READABLE The file '%value%' can not be read  
File_Md5 DOES_NOT_MATCH The file '%value%' does not match the given md5 hashes  
NOT_DETECTED There was no md5 hash detected for the given file  
NOT_FOUND The file '%value%' could not be found  
File_MimeType FALSE_TYPE The file '%value%' has a false mimetype of '%type%'  
NOT_DETECTED The mimetype of file '%value%' could not been detected  
NOT_READABLE The file '%value%' can not be read  
File_NotExists DOES_EXIST The file '%value%' does exist  
File_Sha1 DOES_NOT_MATCH The file '%value%' does not match the given sha1 hashes  
NOT_DETECTED There was no sha1 hash detected for the given file  
NOT_FOUND The file '%value%' could not be found  
File_Size TOO_BIG Maximum allowed size for file '%value%' is '%max%' but '%size%' detected  
TOO_SMALL Minimum expected size for file '%value%' is '%min%' but '%size%' detected  
NOT_FOUND The file '%value%' could not be found  
File_Upload INI_SIZE The file '%value%' exceeds the defined ini size  
FORM_SIZE The file '%value%' exceeds the defined form size  
PARTIAL The file '%value%' was only partially uploaded  
NO_FILE The file '%value%' was not uploaded  
NO_TMP_DIR No temporary directory was found for the file '%value%'  
CANT_WRITE The file '%value%' can't be written  
EXTENSION The extension returned an error while uploading the file '%value%'  
ATTACK The file '%value%' was illegal uploaded, possible attack  
FILE_NOT_FOUND The file '%value%' was not found  
UNKNOWN Unknown error while uploading the file '%value%'  
File_WordCount TOO_MUCH Too much words, maximum '%max%' are allowed but '%count%' were counted  
TOO_LESS Too less words, minimum '%min%' are expected but '%count%' were counted  
NOT_FOUND The file '%value%' could not be found  
Float NOT_FLOAT '%value%' does not appear to be a float  
GreaterThan NOT_GREATER '%value%' is not greater than '%min%'  
Hex NOT_HEX '%value%' has not only hexadecimal digit characters  
Hostname IP_ADDRESS_NOT_ALLOWED '%value%' appears to be an IP address, but IP addresses are not allowed  
UNKNOWN_TLD '%value%' appears to be a DNS hostname but cannot match TLD against known list  
INVALID_DASH '%value%' appears to be a DNS hostname but contains a dash (-) in an invalid position  
INVALID_HOSTNAME_SCHEMA '%value%' appears to be a DNS hostname but cannot match against hostname schema for TLD '%tld%'  
UNDECIPHERABLE_TLD '%value%' appears to be a DNS hostname but cannot extract TLD part  
INVALID_HOSTNAME '%value%' does not match the expected structure for a DNS hostname  
INVALID_LOCAL_NAME '%value%' does not appear to be a valid local network name  
LOCAL_NAME_NOT_ALLOWED '%value%' appears to be a local network name but local network names are not allowed  
Iban NOTSUPPORTED '%value%' does not have IBAN  
FALSEFORMAT '%value%' has a false format  
CHECKFAILED '%value%' has failed the IBAN check  
Identical NOT_SAME The token '%token%' does not match the given token '%value%'  
MISSING_TOKEN No token was provided to match against  
InArray NOT_IN_ARRAY '%value%' was not found in the haystack  
Int NOT_INT '%value%' does not appear to be an integer  
Ip NOT_IP_ADDRESS '%value%' does not appear to be a valid IP address  
LessThan NOT_LESS '%value%' is not less than '%max%'  
NotEmpty IS_EMPTY Value is required and can't be empty  
Regex NOT_MATCH '%value%' does not match against pattern '%pattern%'  
StringLength TOO_SHORT '%value%' is less than %min% characters long  
TOO_LONG '%value%' is greater than %max% characters long  

Additionally you can retrieve all message templates of a validator with the method getMessageTemplates(). It returns you an array with the messages a validator could return in the case of a failed validation.

$validator = new Zend_Validate_Alnum();
$messages  = $validator->getMessageTemplates();

58.5.1. Limit the size of a validation message

Sometimes it is necessary to limit the maximum size a validation message can have. For example when your view allows a maximum size of 100 chars to be rendered on one line. To simplify the usage, Zend_Validate is able to automatically limit the maximum returned size of a validation message.

To get the actual set size use Zend_Validate::getMessageLength(). If it is -1, then the returned message will not be truncated. This is default behaviour.

To limit the returned message size use Zend_Validate::setMessageLength(). Set it to any integer size you need. When the returned message exceeds the set size, then the message will be truncated and the string '...' will be added instead of the rest of the message.

Zend_Validate::setMessageLength(100);
[注意] 注意

Note that the set message length is used for all validators, even for self defined ones as long as they extend Zend_Validate_Abstract.