2010-10-02 14 views
5

Si j'ai un élément de formulaire auquel plusieurs validateurs sont attachés (3 dans cet exemple), comment utiliser addErrorMessage pour créer des messages d'erreur personnalisés lorsque chaque validateur unique échoue. Est-il possible d'ajouter un message personnalisé pour chaque validateur?Validateurs Zend et messages d'erreur: addValidator et addErrorMessage

$element = new Zend_Form_Element_Text()... 
$element->.... 
     ->addValidator(...) 
     ->addValidator(...) 
     ->addValidator(...) 
     ->addErrorMessage() 

Répondre

11

En général, il est fait par validateur message d'erreur, et non par validateur ...

$element->setErrorMessages(array(Zend_Validate_...::CONSTANT => 'New Message')); 

Mais je préfère souvent passer outre tous à un seul

$element->setErrorMessages(array('Single Error')); 

erreurs d'un élément ou , si j'en ai besoin par validateur, cela fonctionne ...

$validator->setMessages('string error') 

doit remplacer toutes les erreurs d'un validateur à un seul message. Je ne pourrais pas trouver ceci documenté n'importe où, mais cela fonctionne pour moi. Pour cette raison, il peut ne pas fonctionner pour toutes les versions?

Pour moi, le traitement des messages d'erreur est un peu compliqué à moins que vous ne souhaitiez remplacer tous les messages d'erreur possibles, mais j'espère que l'une de ces solutions fonctionne pour vous.

Acclamations

+0

J'ai quelques erreurs supplémentaires mais en utilisant la première validation ne fonctionne pas –

6

Ajoutez votre message ainsi que le validateur ci-dessous. Exemple:

->addValidator('StringLength', false, array(0,255,'messages'=>'Cannot be more than 255 chars')) 

->addValidator('NotEmpty', true, array('messages'=>'Cannot be empty')) 
2

Ajoutez votre message comme celui-ci

-> addValidator ('Alpha', true, tableau (s = 'messages> array ('notAlpha'=> « S'il vous plaît entrer caractère alphabétique dans le nom du produit:
")));

Ajouter un message validateur selon votre chaîne d'erreur

+0

J'aime la gestion des messages spécifiée via 'notAlpha'. pouvez-vous me guider vers où je peux trouver plus de ces identifiants pour le reste des validateurs? merci quand même: ^) – Katia

+0

Vous trouvez ces varibale de message d'erreur de son fichier de validation. aller au-dessous chemin projet/bibliothèque/Zend/valider sélectionnez votre règle de validation, Ici vous trouvez la liste de "const" qui est pour le message d'erreur –

0

addErrorMessage ('Votre message personnalisé'); C'est aussi le moyen le plus simple d'imprimer le message personnalisé.

Le addErrorMessage est défini à l'intérieur libraray/zend/Forme/Elements.php

Hope it helps !!