Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 05-08-2009 15:46:53

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

[Zend_Validate]Message d'erreur unique

Bonjour,

Qui sait me dire s'il est possible (et comment :p) de définir un message d'erreur unique pour un Validateur qui prévoit plusieurs Constantes d'erreurs différentes ?

Je précise que je souhaite faire ça sans utiliser le "break on failure".


Merci,

A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#2 05-08-2009 16:19:55

itecman
Membre
Lieu: Orléans
Date d'inscription: 03-07-2009
Messages: 57

Re: [Zend_Validate]Message d'erreur unique

Salut,

Je n'ai pas de réponse à ta question, mais en revanche j'ai eu le même problème (personnalisation des messages d'erreurs). Du coup voici ce que j'ai dégoté en trainant sur "le web" :

Mon souci se pose avec un champs de saisie d'adresse email -_- :

Code:

$emailInvalide = new Zend_Validate_EmailAddress(); // 'Email inexistant ou invalide',
$emailInvalide->setMessage(
                     array(
                         Zend_Validate_EmailAddress::INVALID            => ("'%value%' est inexistant ou invalide"),
                     Zend_Validate_EmailAddress::INVALID_HOSTNAME   => ("'%hostname%' is not a valid hostname for email address '%value%'"),
                    Zend_Validate_EmailAddress::INVALID_MX_RECORD  => ("'%hostname%' does not appear to have a valid MX record for the email address '%value%'"),
                    Zend_Validate_EmailAddress::DOT_ATOM           => ("'%localPart%' not matched against dot-atom format"),
                    Zend_Validate_EmailAddress::QUOTED_STRING      => ("'%localPart%' not matched against quoted-string format"),
                       Zend_Validate_EmailAddress::INVALID_LOCAL_PART => ("'%localPart%' is not a valid local part for email address '%value%'")
                                         ));

ça peut te donner des pistes, du style mettre les message à "vide", ou encore passer un setMessage() un tableau vide, je n'en sais rien car j'ai laissé de coté pour le moment smile

Courage et fait nous part de ta solution si t'en as une :p

Bye


-- itecman smile

ZF 1.8.4 - Zend Server CE

Hors ligne

 

#3 10-08-2009 10:04:42

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Zend_Validate]Message d'erreur unique

Salut,

Ça ne m'intéresse pas de redéfinir tous les messages d'erreurs justement.

Et là ça devient très embêtant, par ex. je passe au ZF1.9 dans lequel les types d'erreurs sur certains validateurs ont évolué, et bien maintenant au milieu de mes formulaires existants, j'obtiens des erreurs non traduites, parce qu'il faut que je refactorise pour mettre à jour mes erreurs en fonction du ZF.

Par ex, j'ai:

Code:

            // pseudo
            'login'   => array(
                'presence'   => 'required',
                'allowEmpty' => false,
                'Alnum',                    
                array('StringLength', 5, 20),
                new Tight_Validate_Service_NoEntityExists('findUserByLogin', $this->_userService),
                'messages' => array(                    
                    0 => $this->_tr->translate('Le pseudonyme ne doit être composé que de lettres (AZ-Az) et de chiffres (0-9).'),
                    1 => $this->_tr->translate('Le pseudonyme doit contenir de 5 à 20 caractères.'),
                    2 => array(
                        Tight_Validate_Service_NoEntityExists::ERROR_ENTITY_FOUND =>
                            $this->_tr->translate('Ce pseudonyme est déjà utilisé par un autre membre.')                                
                    )
                )
            ),

Et bien pour le Alnum et le StringLength, je n'obtiens pas mes messages d'erreurs traduits. Je dois redéfinir chaque constante.

Pour StringLength ça fonctionnait très bien avant ZF1.9, et là je dois revoir mes controlleurs pour mettre à jour. Pas terrible tout ça. Je commence à me demander si l'adaptateur gettext() de Zend + les validateurs est une solution que je vais conserver.

Il faudrait vraiment pouvoir définir un unique message d'erreur pour un validateur, quelque soit l'erreur.


A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#4 29-10-2009 11:51:02

toinax
Nouveau membre
Date d'inscription: 29-10-2009
Messages: 1

Re: [Zend_Validate]Message d'erreur unique

Bonjour,

Cette problématique m'embête beaucoup. Je voudrai valider une adresse e mail mais n'avoir qu'un simple message d'erreur et non pas tout l'armada de messages (hostname, mx, adresse locale invalide), etC.

Quelqu'un a-t-il trouvé une solution ?

J'avais vu quelqu'un sur un forum qui avait surchargé email validator comme ça :

Code:

class FrontendEmailValidator extends  Zend_Validate_EmailAddress {
        public function getMessages() {
            return array("This is not a valid e-mail address.");
        }
    }

Est ce que ça marche ? Où mettre cette classe surchargée dans ma structure pour que ce soit propre ?

Il y a t'il une autre solution plus simple ? avec les setMessages ?

Merci

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages