Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 04-10-2011 16:23:59

flilou
Membre
Date d'inscription: 09-05-2011
Messages: 23

Zend_Validate - creation chaines de validation

Bonjour à tous,

j'ai un formulaire avec deux champs obligatoires: $champ1 et $champ2. En plus d'être obligatoire, le champ $champ2 doit exister dans une de mes tables de ma base de données.
Voilà comment je m'y prends pour créer cet élément:

Code:

// Mes validateurs
$ChampVide = new Zend_Validate_NotEmpty(); // pour vérifier que mon champ est non vide
$ChampVide->setMessage ( 'Champ obligatoire', Zend_Validate_NotEmpty::IS_EMPTY ); 
$ChampExist = new Zend_Validate_Db_RecordExists("maTable", "monChamp"); // pour vérifier que mon champ existe bien dans ma table
$ChampExist->setMessage ('Champ non existant');

// mon élément
$Champ2 = new Zend_Form_Element_Text ( 'mon_champ2' );
$Champ2->addValidator ( $ChampVide , true ); // $breakchainOnFailure=true pour interrompre la procédure de test de l'existence de mon champ s'il est vide
$Champ2->addValidator ( $ChampExist );

Quand je teste avec un champ2 non existant dans la base, j'ai bien le message d'erreur qui s'affiche "Champ non existant".
Si je ne renseigne pas ce champ (champ vide), j'ai un message d'erreur

Message: SQLSTATE[22P02]: Invalid text representation: 7 ERREUR: syntaxe en entrée invalide pour l'entier : « »

ceci est du au fait que le 1er test "champVide" qui normalement a échoué, n'interrompt pas la procédure et est vérifié l'existence de la chaine vide " " via le validateur Db_RecordExists.

En revanche, si je défini autrement mon élément, le "breakChainOnFailure" est pris en compte et le 2nd test n'est pas effectué:

Code:

$Champ2 = new Zend_Form_Element_Text ( 'mon_champ2' );
$Champ2->addValidator (new Zend_Validate_NotEmpty() , true ); // $breakchainOnFailure=true pour interrompre la procédure de test de l'existence de mon champ s'il est vide
$Champ2->addValidator ( $ChampExist );

Je ne comprends pas pourquoi mon formulaire réagit ainsi, si j'ai crée $ChampVide c'est parce que j'utilise ce validateur pour d'autres champs du formulaire et ce problème ne se pose pas vu que je n'affecte pas d'autres validateurs à ces éléments.

Désolé pour la longueur du message, et merci d'avance pour vos retours....

Hors ligne

 

#2 10-10-2011 13:52:02

flilou
Membre
Date d'inscription: 09-05-2011
Messages: 23

Re: Zend_Validate - creation chaines de validation

UP!
Aucun retour???

Comment expliquer le fait que selon la façon dont j'affecte un validateur à mon élément, il va prendre en compre le 'breakChainOnFailure'????
Y aurait-il quelqu'un qui aurait une raison logique à ce problème ou bien je me suis trompé quelque part, mais où???

Dans l'attente d'un retour désespéremment sad, merci d'avance.....

Dernière modification par flilou (10-10-2011 17:29:50)

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