Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous,
Je vous explique mon problème (qui à mon avis, ne doit pas être bien compliqué).
Dans mon formulaire, j'ai un Zend_Element_Text dans lequel j'autorise uniquement les caractères numériques (ce champ est obligatoire).
Si j'entre --> "9876a" pas de problème le message que j'ai définit s'affiche.
Par contre, si je le laisse vide, il me met deux messages celui de mon validateur "NotEmpty" (pour l'instant parfait) et un autre message lié au validateur "Digits" qui me dit : '' is an empty string (voilà ce qui me pose problème).
$valNotEmpty = new Zend_Validate_NotEmpty(); $valNotEmpty->setMessage('Ce champ ne peut pas être vide'); $valDigits = new Zend_Validate_Digits(); $valDigits->setMessage('Ce champ peut contenir uniquement des caractères numériques'); $prix->setLabel('Prix') ->setRequired(true) ->addValidators(array($valNotEmpty, $valDigits));
Merci d'avance.
Dernière modification par fredouille312 (29-11-2008 14:09:37)
Hors ligne
Hello,
Ajoutes :
$prix->setLabel('Prix') ->setRequired(true) ->addValidators(array($valNotEmpty, $valDigits)) ->autoInsertNotEmptyValidator(false);
A+
Hors ligne
mikaelkael a écrit:
Hello,
Ajoutes :Code:
$prix->setLabel('Prix') ->setRequired(true) ->addValidators(array($valNotEmpty, $valDigits)) ->autoInsertNotEmptyValidator(false);A+
Salut,
Alors j'ai ajouté le code mais pas de changement !
Hors ligne
Hello,
$prix->setLabel('Prix') ->setRequired(true) ->addValidators(array($valNotEmpty, $valDigits)) ->setAutoInsertNotEmptyValidator(false);
J'imagine que ça devrait être mieux
A+
Hors ligne
Non, malheureusement pour moi, ça ne fonctionne toujours pas... (Et je comprends par pourquoi.)
Hors ligne
Hello,
Effectivement ce n'est pas lié au validateur NotEmpty mais au validateur Digit qui possède 2 messages donc :
$valDigits->setMessage('Ce champ peut contenir uniquement des caractères numériques');
n'est pas suffisant. Il n'impacte que le premier message. Il faut modifier par :
$valDigits->setMessages(array(Zend_Validate_Digits::NOT_DIGITS => 'Ce champ peut contenir uniquement des caractères numériques', Zend_Validate_Digits::STRING_EMPTY => 'Ce champ ne peut pas être vide'));
A+
Dernière modification par mikaelkael (28-11-2008 12:57:13)
Hors ligne
C'est tout bon merci. La prochaine fois je regarderai un peu mieux l'API. Merci encore.
Hors ligne
Pages: 1