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