Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je suis en train de me mettre au package Zend_Filter_Input dans la dernière version Stable. J'essaye de tester un champ titre d'un formulaire. Lorsque celui-ci est vide j'ai bien un message d'erreur mais c'est le message par défaut.
<?php ... require_once 'Zend/Filter/Input.php'; require_once 'Zend/Filter/StringTrim.php'; require_once 'Zend/Validate/Alnum.php'; $filters = array( 'titre' => 'StringTrim' ); $validators = array( 'titre' => array( 'alpha', 'presence' => 'required' ) ); $options = array( 'missingMessage' => 'Le champ %field% est requis.', ); $data = $_POST; $input = new Zend_Filter_Input($filters, $validators, $data, $options); if ($input->hasInvalid() || $input->hasMissing()) { Zend_Debug::dump($input->getMessages()); } ... ?>
Comment connaître la liste des messages possibles ? Et leur code ?
Hors ligne
Bonjour Rod,
Est-ce les messages suivants que tu vois :
protected $_defaults = array( self::ALLOW_EMPTY => false, self::BREAK_CHAIN => false, self::ESCAPE_FILTER => 'HtmlEntities', self::MISSING_MESSAGE => "Field '%field%' is required by rule '%rule%', but the field is missing", self::NOT_EMPTY_MESSAGE => "You must give a non-empty value for field '%field%'", self::PRESENCE => self::PRESENCE_OPTIONAL );
on peut les modifier en passant ses propres messages dans le tableau $options quand on instancie le filtre.
fred
Hors ligne
En fait Zend/Filter/Input.php fait appel aux classes Zend_Validate_* dans lequel on retrouve ce message :
Zend/Validate/Digits.php
Zend/Validate/Alpha.php
Zend/Validate/Alnum.php
On peut les modifier par la méthode setMessage($messageString, $messageKey = null) où $messageKey est par exemple la constante STRING_EMPTY
Dans Zend_Filter_Input, tu peux ajouter des namesspaces. Les deux qui sont systemes sont 'Zend_Filter' et 'Zend_Validate'
Par contre je n'ai pas encore trouvé comment on accède à ces namespaces pour changer les messages par setMessage.
Enfin, c'est peut-être un début de piste....
Fred
Hors ligne
Je rencontre le même problème :
J'aimerai traduire une fois pour toute ces fameux messages. Mon but final serait d'éviter qu'à chaque Zend_Filter_Input je redéclare la traduction en passant en options la traduction. Pour cela il faudrait donc créer un Zend_Filter_Input dans l'index et enregistrer sa référence dans le registre ?
Cordialement,
Laurent
Hors ligne
Salut,
je suis tombé là-dessus :
http://www.nabble.com/Zend_Filter_Input … #a11363331
Je n'ai pas tout lu, mais à la toute fin, le type est content
Fred
Hors ligne
Bonsoir,
Je n'arrive pas à valider le champ adresse :
'address' => array('Alnum', 'messages' => array( Zend_Validate_Alnum::STRING_EMPTY => 'Le champ "Adresse" est vide.', ) ),
Lorsque je met ca il me met comme erreur :
'1 rue de la ....' has not only alphabetic and digit characters.
Y a t il une possibilité de mettre à true pour qu'il accepte els espace alnum dan sl syntaxe plus haut ,
Sinon comment modifier cette valeur pour presence => required :
'' is an empty string
D'avance merci
Hors ligne
Pages: 1