Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 25-07-2011 23:25:01

ss04
Nouveau membre
Date d'inscription: 25-07-2011
Messages: 3

[Zend_Form Zend_Controller][1.11] Meilleure conception valider form

Bonsoir,

je débute avec Zend et l'architecture MVC, je suis devant un dilemme :

1. j'ai un formulaire qui contient un certain nombre de champs (nom, prenom,date de naissance par ex)
2. je dois controler que la base de données ne contient pas plus de 3 fois la clé [nom+prenom+datenaissance] pour poursuivre la création du contact (utilisation des sous formulaires)

Qui est chargé de faire la vérification dans la base ? Zend_Form en surchargeant isValid, ou le controleur quand isValid retourne true ?

Zend_Form peut le faire puisque je considère que mon formulaire est valide si je ne retrouve pas la clé plus de 3 fois, mais quid du message d'erreur ?

Quel est votre avis ?

Merci de vos suggestions, orientations et conseils.

Hors ligne

 

#2 26-07-2011 07:39:01

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [Zend_Form Zend_Controller][1.11] Meilleure conception valider form

Bonjour,

Il existe une classe Zend_Validate_Db inclue dans le framework. Tu devrais essayer de prendre le no record exists et de le surcharger pour prendre en compte ta contrainte des trois enregistrements.

Hors ligne

 

#3 26-07-2011 11:01:48

Ender
Membre
Date d'inscription: 01-09-2009
Messages: 52

Re: [Zend_Form Zend_Controller][1.11] Meilleure conception valider form

Quand on peut, le mieux est de surcharger les validateurs existant. Voire d'en créer de nouveaux. Tout simplement parce que ça donne du code réutilisable.

Donc +1 pour Théocrite. smile

Hors ligne

 

#4 26-07-2011 18:52:11

ss04
Nouveau membre
Date d'inscription: 25-07-2011
Messages: 3

Re: [Zend_Form Zend_Controller][1.11] Meilleure conception valider form

Bonjour,

merci pour vos réponses. Je vais chercher dans ce sens.

Si j'ai bien compris, quelque soit le formulaire et le type de validations que l'on souhaite (même avec recherche dans un base de données), il faut créer un validateur.

Je pensais que les validateurs n'étaient que des contrôles de forme (date au bon format, chaine comprise entre X et Y caractères...).

Bonne soirée !
--------------------
Après réflexion, cela reste obscure. Je m'explique :

un validateur s'applique sur un champ par exemple pour le lien de Théocrite, Zend_Validate_Db_NoRecordExists s'appliquerait sur le champ email.

Dans mon cas j'ai besoin que 3 champs soient fournis pour les concaténer puis vérifier dans la base le nombre de fois ou cette clé apparaît.

Je peux toujours créer un validateur, mais la question reste toujours la même ou instancier le validateur dans isValid du formulaire ou dans le controleur si isValid retourne true ?

Merci pour vos retours.

Dernière modification par ss04 (26-07-2011 19:26:42)

Hors ligne

 

#5 26-07-2011 20:57:25

Ender
Membre
Date d'inscription: 01-09-2009
Messages: 52

Re: [Zend_Form Zend_Controller][1.11] Meilleure conception valider form

Les validateurs sont là pour valider quelque chose. Là tu veux valider "que la base de données ne contient pas plus de 3 fois la clé [nom+prenom+datenaissance] pour poursuivre la création du contact (utilisation des sous formulaires)". C'est donc une validation que tu veux.

L'instanciation du validateur se fait dans ton contrôleur : si ton formulaire est valide (au niveau du reste), alors tu instancies ton dernier validateur et tu contrôle qu'il est valide. Dans le cas contraire, tu ajoutes un message d'erreur global à ton formulaire. smile

Hors ligne

 

#6 26-07-2011 22:14:00

ss04
Nouveau membre
Date d'inscription: 25-07-2011
Messages: 3

Re: [Zend_Form Zend_Controller][1.11] Meilleure conception valider form

Merci Ender!

Ta réponse me convient parfaitement.

Merci à tous pour vos lumières.

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