4.1.4 Core Validation Rules
Die Validierungsklasse in CakePHP enthält viele Validierungsregeln, die die Validierung von Model-Daten sehr vereinfachen. Es sind viele oft benutzte Validierungstechniken enthalten, so dass es nicht nötig ist, eigene Regeln zu schreiben. In diesem Abschnitt findet sich eine komplette Liste aller Regeln mit einem Verwendungsbeispiel.
4.1.4.1 alphaNumeric
Der Feldwert darf nur Buchstaben und Zahlen enthalten.
var $validate = array(
'login' => array(
'rule' => 'alphaNumeric',
'message' => 'Benutzernamen dürfen nur Buchstaben und Zahlen enthalten.'
)
);
var $validate = array('login' => array('rule' => 'alphaNumeric','message' => 'Benutzernamen dürfen nur Buchstaben und Zahlen enthalten.'));
4.1.4.2 between
Die Länge eines Datenfeldes muss innerhalb der angegebenen Zahlenwerte liegen. Sowohl Minimum als auch Maximum müssen angegeben werden. Es gilt dabei <= nicht < .
var $validate = array(
'password' => array(
'rule' => array('between', 5, 15),
'message' => 'Passwörter müssen zwischen 5 und 15 Zeichen lang sein.'
)
);
var $validate = array('password' => array('rule' => array('between', 5, 15),'message' => 'Passwörter müssen zwischen 5 und 15 Zeichen lang sein.'));
Die Länge der Daten ist "die Anzahl von Bytes in einer String-Repräsentation der Daten". Beim Arbeiten mit nicht-ASCII-Zeichen könnte der String also größer sein als die Anzahl der Zeichen.
4.1.4.3 blank
Diese Regel wird verwendet um sicherzustellen, dass ein Feld leer ist oder nur White Spaces enthalten sind. White Spaces beinhalten characters, inklusive Space, Tab, Carriage Return und Newline.
var $validate = array(
'id' => array(
'rule' => 'blank',
'on' => 'create'
)
);
var $validate = array('id' => array('rule' => 'blank','on' => 'create'));
4.1.4.4 boolean
Für das Feld ist nur ein boolescher Wert erlaubt. Gültige Werte sind true oder false, Zahlen 0 oder 1 oder die Zeichen '0' oder '1'.
var $validate = array(
'myCheckbox' => array(
'rule' => array('boolean'),
'message' => 'Incorrect value for myCheckbox'
)
);
var $validate = array('myCheckbox' => array('rule' => array('boolean'),'message' => 'Incorrect value for myCheckbox'));
4.1.4.5 cc
Es gibt zur Zeit keine Übersetzung für diesen Abschnitt. Bitte hilf mit und übersetze ihn. Mehr Informationen zu Übersetzungen
This rule is used to check whether the data is a valid credit card number. It takes three parameters: ‘type’, ‘deep’ and ‘regex’.
The ‘type’ key can be assigned to the values of ‘fast’, ‘all’ or any of the following:
- amex
- bankcard
- diners
- disc
- electron
- enroute
- jcb
- maestro
- mc
- solo
- switch
- visa
- voyager
If ‘type’ is set to ‘fast’, it validates the data against the major credit cards’ numbering formats. Setting ‘type’ to ‘all’ will check with all the credit card types. You can also set ‘type’ to an array of the types you wish to match.
The ‘deep’ key should be set to a boolean value. If it is set to true, the validation will check the Luhn algorithm of the credit card (http://en.wikipedia.org/wiki/Luhn_algorithm). It defaults to false.
The ‘regex’ key allows you to supply your own regular expression that will be used to validate the credit card number.
var $validate = array(
'ccnumber' => array(
'rule' => array('cc', array('visa', 'maestro'), false, null),
'message' => 'The credit card number you supplied was invalid.'
)
);
var $validate = array('ccnumber' => array('rule' => array('cc', array('visa', 'maestro'), false, null),'message' => 'The credit card number you supplied was invalid.'));
4.1.4.6 Vergleiche
Vergleiche werden benutzt um numerische Werte miteinander zu vergleichen. Unterstützt werden "is greater" (größer als), "is less" (kleiner als), "greater or equal" (größer/gleich), "less or equal" (kleiner/gleich), "equal to" (gleich) und "not equal" (ungleich). Es folgen einige Beispiel:
var $validate = array(
'age' => array(
'rule' => array('comparison', '>=', 18),
'message' => 'Man muss mindestens 18 Jahre alt sein, um sich zu qualifizieren.'
)
);
var $validate = array(
'age' => array(
'rule' => array('comparison', 'greater or equal', 18),
'message' => 'Man muss mindestens 18 Jahre alt sein, um sich zu qualifizieren.'
)
);
var $validate = array('age' => array('rule' => array('comparison', '>=', 18),'message' => 'Man muss mindestens 18 Jahre alt sein, um sich zu qualifizieren.'));var $validate = array('age' => array('rule' => array('comparison', 'greater or equal', 18),'message' => 'Man muss mindestens 18 Jahre alt sein, um sich zu qualifizieren.'));
4.1.4.7 date
Es gibt zur Zeit keine Übersetzung für diesen Abschnitt. Bitte hilf mit und übersetze ihn. Mehr Informationen zu Übersetzungen
This rule ensures that data is submitted in valid date formats. A single parameter (which can be an array) can be passed that will be used to check the format of the supplied date. The value of the parameter can be one of the following:
- ‘dmy’ e.g. 27-12-2006 or 27-12-06 (separators can be a space, period, dash, forward slash)
- ‘mdy’ e.g. 12-27-2006 or 12-27-06 (separators can be a space, period, dash, forward slash)
- ‘ymd’ e.g. 2006-12-27 or 06-12-27 (separators can be a space, period, dash, forward slash)
- ‘dMy’ e.g. 27 December 2006 or 27 Dec 2006
- ‘Mdy’ e.g. December 27, 2006 or Dec 27, 2006 (comma is optional)
- ‘My’ e.g. (December 2006 or Dec 2006)
- ‘my’ e.g. 12/2006 or 12/06 (separators can be a space, period, dash, forward slash)
If no keys are supplied, the default key that will be used is ‘ymd’.
var $validate = array(
'born' => array(
'rule' => 'date',
'message' => 'Enter a valid date in YY-MM-DD format.',
'allowEmpty' => true
)
);
var $validate = array('born' => array('rule' => 'date','message' => 'Enter a valid date in YY-MM-DD format.','allowEmpty' => true));
While many data stores require a certain date format, you might consider doing the heavy lifting by accepting a wide-array of date formats and trying to convert them, rather than forcing users to supply a given format. The more work you can do for your users, the better.
4.1.4.8 decimal
Diese Regel stellt sicher, dass die Daten eine gültige Dezimalzahl darstellen. Ein angegebener Parameter legt die Anzahl der Nachkommastellen fest. Wenn kein Parameter angegeben ist, werden die Daten als wissenschaftliche Float-Zahl validiert. Dies führt dazu, dass die Validierung fehlschlägt, wenn keine Nachkommstellen angegeben werden.
var $validate = array(
'price' => array(
'rule' => array('decimal', 2)
)
);
var $validate = array('price' => array('rule' => array('decimal', 2)));
4.1.4.9 email
Diese Regel überprüft, ob die Daten eine gültige E-Mail-Adresse darstellen. Wird ein zweiter Parameter vom Typ Boolean als true übergeben, versucht diese Regel außerdem, den Host der E-Mail-Adresse zu verifizieren.
var $validate = array('email' => array('rule' => 'email'));
var $validate = array(
'email' => array(
'rule' => array('email', true),
'message' => 'Bitte geben Sie eine gültige E-Mail-Adresse an.'
)
);
var $validate = array('email' => array('rule' => 'email'));var $validate = array('email' => array('rule' => array('email', true),'message' => 'Bitte geben Sie eine gültige E-Mail-Adresse an.'));
4.1.4.10 equalTo
Diese Regel stellt sicher, dass Wert und Typ einem gegeben Wert entsprechen.
var $validate = array(
'food' => array(
'rule' => array('equalTo', 'cake'),
'message' => 'Dieser Wert muss der String cake sein.'
)
);
var $validate = array('food' => array('rule' => array('equalTo', 'cake'),'message' => 'Dieser Wert muss der String cake sein.'));
4.1.4.11 extension
Mit dieser Regel kann die Dateiendung (z.B. .jpg oder .png) überprüft werden. Es ist dabei möglich, mehrere valide Dateiendungen in einem Array zu definieren.
var $validate = array(
'image' => array(
'rule' => array('extension', array('gif', 'jpeg', 'png', 'jpg')),
'message' => 'Please supply a valid image.'
)
);
var $validate = array('image' => array('rule' => array('extension', array('gif', 'jpeg', 'png', 'jpg')),'message' => 'Please supply a valid image.'));
4.1.4.12 file
Mit dieser Regel wird sichergestellt, dass der Wert ein korrekter Dateiname ist. Diese Regel ist momentan noch nicht in gebrauch.
4.1.4.13 ip
Diese Regel stellt sicher, dass der Wert eine korrekte IPv4 Adresse ist.
var $validate = array(
'clientip' => array(
'rule' => 'ip',
'message' => 'Please supply a valid IP address.'
)
);
var $validate = array('clientip' => array('rule' => 'ip','message' => 'Please supply a valid IP address.'));
4.1.4.14 isUnique
Der Wert dieses Felder muss einzigartig sein und kann nicht in einer anderen Zeile verwendet werden.
var $validate = array(
'login' => array(
'rule' => 'isUnique',
'message' => 'This username has already been taken.'
)
);
var $validate = array('login' => array('rule' => 'isUnique','message' => 'This username has already been taken.'));
4.1.4.15 minLength
Der Wert muss eine bestimmte Anzahl Zeichen haben.
var $validate = array(
'login' => array(
'rule' => array('minLength', 8),
'message' => 'Usernames must be at least 8 characters long.'
)
);
var $validate = array('login' => array('rule' => array('minLength', 8),'message' => 'Usernames must be at least 8 characters long.'));
Die Länge hier ist die Anzahl Bytes in dem String. Beachte bitte, dass die Länge daher grösser sein kann als die Anzahl Zeichen, beim Gebrauch von nicht-ASCII Zeichen.
4.1.4.16 maxLength
Es gibt zur Zeit keine Übersetzung für diesen Abschnitt. Bitte hilf mit und übersetze ihn. Mehr Informationen zu Übersetzungen
This rule ensures that the data stays within a maximum length requirement.
var $validate = array(
'login' => array(
'rule' => array('maxLength', 15),
'message' => 'Usernames must be no larger than 15 characters long.'
)
);
var $validate = array('login' => array('rule' => array('maxLength', 15),'message' => 'Usernames must be no larger than 15 characters long.'));
The length here is "the number of bytes in the string representation of the data". Be careful that it may be larger than the number of characters when handling non-ASCII characters.
4.1.4.17 money
Der Originaltext dieses Abschnitts hat sich seit der letzen Übersetzung geändert. Bitte hilf dabei die Unterschiede zu lösen. Du kannst:
Diese Regel stellt sicher, dass der Wert eine korrekte Währungszahl ist.
Der zweite Parameter definiert, wo sich das Währungszeichen befindet (links/rechts).
var $validate = array(
'salary' => array(
'rule' => array('money', 'left'),
'message' => 'Please supply a valid monetary amount.'
)
);
var $validate = array('salary' => array('rule' => array('money', 'left'),'message' => 'Please supply a valid monetary amount.'));
4.1.4.18 multiple
Es gibt zur Zeit keine Übersetzung für diesen Abschnitt. Bitte hilf mit und übersetze ihn. Mehr Informationen zu Übersetzungen
Use this for validating a multiple select input. It supports parameters "in", "max" and "min".
var $validate = array(
'multiple' => array(
'rule' => array('multiple', array('in' => array('do', 'ray', 'me', 'fa', 'so', 'la', 'ti'), 'min' => 1, 'max' => 3)),
'message' => 'Please select one, two or three options'
)
);
var $validate = array('multiple' => array('rule' => array('multiple', array('in' => array('do', 'ray', 'me', 'fa', 'so', 'la', 'ti'), 'min' => 1, 'max' => 3)),'message' => 'Please select one, two or three options'));
4.1.4.19 inList
Es gibt zur Zeit keine Übersetzung für diesen Abschnitt. Bitte hilf mit und übersetze ihn. Mehr Informationen zu Übersetzungen
This rule will ensure that the value is in a given set. It needs an array of values. The field is valid if the field's value matches one of the values in the given array.
Example:
var $validate = array(
'function' => array(
'allowedChoice' => array(
'rule' => array('inList', array('Foo', 'Bar')),
'message' => 'Enter either Foo or Bar.'
)
)
);
var $validate = array('function' => array('allowedChoice' => array('rule' => array('inList', array('Foo', 'Bar')),'message' => 'Enter either Foo or Bar.')));
4.1.4.20 numeric
Es gibt zur Zeit keine Übersetzung für diesen Abschnitt. Bitte hilf mit und übersetze ihn. Mehr Informationen zu Übersetzungen
Checks if the data passed is a valid number.
var $validate = array(
'cars' => array(
'rule' => 'numeric',
'message' => 'Please supply the number of cars.'
)
);
var $validate = array('cars' => array('rule' => 'numeric','message' => 'Please supply the number of cars.'));
4.1.4.21 notEmpty
Es gibt zur Zeit keine Übersetzung für diesen Abschnitt. Bitte hilf mit und übersetze ihn. Mehr Informationen zu Übersetzungen
The basic rule to ensure that a field is not empty.
var $validate = array(
'title' => array(
'rule' => 'notEmpty',
'message' => 'This field cannot be left blank'
)
);
var $validate = array('title' => array('rule' => 'notEmpty','message' => 'This field cannot be left blank'));
Do not use this for a multiple select input as it will cause an error. Instead, use "multiple".
4.1.4.22 phone
Es gibt zur Zeit keine Übersetzung für diesen Abschnitt. Bitte hilf mit und übersetze ihn. Mehr Informationen zu Übersetzungen
Phone validates US phone numbers. If you want to validate non-US phone numbers, you can provide a regular expression as the second parameter to cover additional number formats.
var $validate = array(
'phone' => array(
'rule' => array('phone', null, 'us')
)
);
var $validate = array('phone' => array('rule' => array('phone', null, 'us')));
4.1.4.23 postal
Es gibt zur Zeit keine Übersetzung für diesen Abschnitt. Bitte hilf mit und übersetze ihn. Mehr Informationen zu Übersetzungen
Postal is used to validate ZIP codes from the U.S. (us), Canada (ca), U.K (uk), Italy (it), Germany (de) and Belgium (be). For other ZIP code formats, you may provide a regular expression as the second parameter.
var $validate = array(
'zipcode' => array(
'rule' => array('postal', null, 'us')
)
);
var $validate = array('zipcode' => array('rule' => array('postal', null, 'us')));
4.1.4.24 range
Es gibt zur Zeit keine Übersetzung für diesen Abschnitt. Bitte hilf mit und übersetze ihn. Mehr Informationen zu Übersetzungen
This rule ensures that the value is in a given range. If no range is supplied, the rule will check to ensure the value is a legal finite on the current platform.
var $validate = array(
'number' => array(
'rule' => array('range', -1, 11),
'message' => 'Please enter a number between 0 and 10'
)
);
var $validate = array('number' => array('rule' => array('range', -1, 11),'message' => 'Please enter a number between 0 and 10'));
The above example will accept any value which is larger than 0 (e.g., 0.01) and less than 10 (e.g., 9.99). Note: The range lower/upper are not inclusive!!!
4.1.4.25 ssn
Es gibt zur Zeit keine Übersetzung für diesen Abschnitt. Bitte hilf mit und übersetze ihn. Mehr Informationen zu Übersetzungen
Ssn validates social security numbers from the U.S. (us), Denmark (dk), and the Netherlands (nl). For other social security number formats, you may provide a regular expression.
var $validate = array(
'ssn' => array(
'rule' => array('ssn', null, 'us')
)
);
var $validate = array('ssn' => array('rule' => array('ssn', null, 'us')));
4.1.4.26 url
Es gibt zur Zeit keine Übersetzung für diesen Abschnitt. Bitte hilf mit und übersetze ihn. Mehr Informationen zu Übersetzungen
This rule checks for valid URL formats. Supports http(s), ftp(s), file, news, and gopher protocols.
var $validate = array(
'website' => array(
'rule' => 'url'
)
);
var $validate = array('website' => array('rule' => 'url'));
To ensure that a protocol is in the url, strict mode can be enabled like so.
var $validate = array(
'website' => array(
'rule' => array('url', true)
)
);
var $validate = array('website' => array('rule' => array('url', true)));


























