Zend_Filter_Input Nachrichten und Verwendung
Erstellt von Arne | Erstellt in Software- & Webentwicklung | Am 15-08-2012
0
Na kurzer “Open Flair Festival Pause” mal wieder etwas für die Zend Framework Entwickler zum Thema Zend_Filter_Input. Und ja das Festival in Eschwege war genial
Ok zum Thema, wie benutzt man Zend_Filter_Input:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$filters = array('body' => array('StringTrim' , 'StripTags')); $validators = array('name' => 'Alpha'); $data = array(); // z.b. $this->getRequest()->getParams(); $input = new Zend_Filter_Input($filters, $validators, $data; // validieren if ($input->isValid()) { // finden wir das gut } else { $errors = $input->getMessages(); // jetzt können wir die Fehler ans Frontend schicken.. } |
Was jetzt stört sind die Fehlermeldungen, sind vielleicht nicht immer ganz passend. Möchte man diese ändern geht das wie folgt:
|
1 2 3 4 5 6 |
$validators = array( 'name => array( 'Alpha', 'messages' => array(Zend_Validate_Alpha::STRING_EMPTY=>'Du solltest einen Namen eingeben...') ) ); |
Um die Nachrichten zu ändern muss man natürlich die Keys für die Message kennen, diese finden sich immer in den einzelnen Validatoren. Beispiele gefällig? OK:
|
1 2 3 4 5 6 7 8 |
Zend_Validate_Ccnum::CHECKSUM Luhn algorithm (mod-10 checksum) failed on '%value%' Zend_Validate_Date::NOT_YYYY_MM_DD '%value%' is not of the format YYYY-MM-DD Zend_Validate_Date::INVALID ' %value%' does not appear to be a valid date Zend_Validate_Digits::NOT_DIGITS '%value%' contains not only digit characters |
So nun etwas was ich selber erst “gelernt” habe, es gibt auch noch default Messages für “notEmpty” und “missing”, diese lassen sich auch ändern:
|
1 2 3 4 |
$options = array( 'notEmptyMessage' => "Es wird ein nicht leerer Wert für '%field%' benötigt.", 'missingMessage' => "Feld '%field%' ist ein Pflichtfeld" ); |
Das array wird dann zusätzlich an den Zend_Filter_Input übergeben:
|
1 |
$input = new Zend_Filter_Input($filters, $validators, $data, $options); |
Und nun viel Spaß beim Filtern und Validieren

