Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 03-05-2009 19:53:46

Harry
Membre
Lieu: Paris
Date d'inscription: 01-04-2009
Messages: 12

Problème de validator sur Zend_Filter_Input

Bonjour,

Je rencontre un problème de récupération des champs ne figurant pas dans le tableau $validators passé à Zend_Filter_Input :

1/
$filters = array(
           '*'     => 'StringTrim')
$validators = array(
            'nom' => 'Alpha',
            'prenom' => 'Alpha')
$input = new Zend_Filter_Input($filters, $validators, $form);

2/
$filters = array(
           '*'     => 'StringTrim')
$validators = array(
            'nom' => 'Alpha')
$input = new Zend_Filter_Input($filters, $validators, $form);

Dans le cas 1/ $input->prenom renvoie bien la valeur filtrée et validée.
Dans le cas 2/ $input->prenom est null bien que valide.

Donc le fait d'avoir le champ 'nom' dans les validateurs semblerait imposer que le champ 'prenom' y soit aussi pour qu'il puisse être récupéré. Je dois faire une erreur quelque part car il va de soi qu'on souhaite appliquer les validateurs sur certains champs mais pas tous.

Avez-vous une idée ? Merci d'avance.

Harry

Hors ligne

 

#2 08-05-2009 18:59:51

Harry
Membre
Lieu: Paris
Date d'inscription: 01-04-2009
Messages: 12

Re: Problème de validator sur Zend_Filter_Input

Pas beaucoup de succès avec ma question. J'ai continué à réfléchir mais ne comprends pas le problème.
Si je passe $validators à null, je récupère bien mon champ $input->prenom.
Si $validators = array(
            'nom' => 'Alpha'), mon champ $input->prenom récupéré est null.
Si $validators = array(
            'nom' => 'Alpha',
            'prenom' => 'Alpha'), mon champ $input->prenom est bien récupéré avec sa valeur filtrée.
Mais mon problème est que j'ai beaucoup de champs, certains devront passer par la validation mais pas tous... Et si je ne les fais pas apparaître dans $validators ils ressortent à null.
Une idée ?
Merci. Harry

Dernière modification par Harry (08-05-2009 19:00:14)

Hors ligne

 

#3 10-05-2009 15:04:00

Harry
Membre
Lieu: Paris
Date d'inscription: 01-04-2009
Messages: 12

Re: Problème de validator sur Zend_Filter_Input

Pour ceux que ça intéresse, j'ai trouvé une réponse ici : http://codeutopia.net/blog/2007/10/31/c … -problems/
On y lit :
"
If you pass an array to Zend_Filter_Input and try using the methods in it to get the data, you end up getting null values. But why?
Zend_Filter_Input will ignore all data that doesn't have a filter or a validator rule specified. Thus, it will give null values for every such field. You will need to add allowEmpty rules for the fields which have no other rules:
$validators = array(
                'somefield' => 'Alpha',
                'somefield2' => array('allowEmpty' => true),
                'somefield3' => array('allowEmpty' => true)
              );
Now you can use the methods in Zend_Filter_Input to get the rest of the fields.
"
Mon problème semble donc dû à une faiblesse de Zend_Filter_Input qui oblige donc à ajouter aux validateurs un "allowEmpty" à chacun des champs sous peine de les voir retourner à null. (L'ajout de toute autre règle résoud également le problème d'ailleurs).
Ainsi donc, on devrait voir apparaître chaque champ dans la liste des validateurs ??
Bizarre, bizarre... Si tel est le cas je m'empresserai d'abandonner ce composant pour retourner à Zend_Filter et Zend_Validator...
Mais j'ai encore du mal à croire à une telle négligence de la part des développeurs Zend.
++ Harry

Dernière modification par Harry (12-05-2009 22:52:52)

Hors ligne

 

#4 12-05-2009 22:56:58

Harry
Membre
Lieu: Paris
Date d'inscription: 01-04-2009
Messages: 12

Re: Problème de validator sur Zend_Filter_Input

Une dernière petite relance sur ce post qui n'a pas l'air d'inspirer grand monde.
Ma question est-elle sans intérêt ? Vous me faites douter car il m'étonne qu'elle n'intéresse personne. A moins que je ne passe à côté de quelque chose d'énorme comme ça m'arrive parfois...
++ Harry

Hors ligne

 

#5 24-05-2009 23:30:53

creatix
Membre
Date d'inscription: 03-08-2008
Messages: 17

Re: Problème de validator sur Zend_Filter_Input

Pour évité ce probléme je fait un '*' => 'NotEmpty' dans mon validateur... C'est pas une réponse mais bon... J'ai également trouvé étrange de pas récupéré les autres éléments...

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