Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 10-03-2010 16:11:43

JEDI_BC
Membre
Date d'inscription: 27-10-2008
Messages: 38

[Zend_Filter_Input][1.10.2] Zend_Filter_Input & tableau

Bonjour,

J'ai un formulaire qui renvoi un tableau multi-dimensionel genre :

Code:

    $_POST['exemple'] = array(
        'vn' => array(
            'A' => array(10 => 0, 9 => 0, 8 => 0, 7 => 0, 6 => 0, 5 => 0, 4 => 0, 3 => 0, 2 => 0, 1 => 0),
            'B' => array(10 => 0, 9 => 0, 8 => 0, 7 => 0, 6 => 0, 5 => 0, 4 => 0, 3 => 0, 2 => 0, 1 => 0),
            'C' => array(10 => 0, 9 => 0, 8 => 0, 7 => 0, 6 => 0, 5 => 0, 4 => 0, 3 => 0, 2 => 0, 1 => 0),
            'AUTRE' => array(10 => 0, 9 => 0, 8 => 0, 7 => 0, 6 => 0, 5 => 0, 4 => 0, 3 => 0, 2 => 0, 1 => 0)
        ),
        'vo' => array(
            'A' => array(10 => 0, 9 => 0, 8 => 0, 7 => 0, 6 => 0, 5 => 0, 4 => 0, 3 => 0, 2 => 0, 1 => 0),
            'B' => array(10 => 0, 9 => 0, 8 => 0, 7 => 0, 6 => 0, 5 => 0, 4 => 0, 3 => 0, 2 => 0, 1 => 0),
            'C' => array(10 => 0, 9 => 0, 8 => 0, 7 => 0, 6 => 0, 5 => 0, 4 => 0, 3 => 0, 2 => 0, 1 => 0),
            'AUTRE' => array(10 => 0, 9 => 0, 8 => 0, 7 => 0, 6 => 0, 5 => 0, 4 => 0, 3 => 0, 2 => 0, 1 => 0)
        )
    );

Je veux filtrer et valider ce tableau donc j'utilise Zend_Filter_Input. Or je constate que ce dernier ne filtre/valide pas le tableau en "1 seul morceau" mais en 2 passe. 1 pour $_POST['exemple']['vn'] et une pour $_POST['exemple']['vo']. Sauf que j'aimerais bien vérifier que vn et vo existent...

Dans la méthode _filterRule de Zend_Filter_Input, on voit très clairement qu'il traite différemment les tableaux :

Code:

    /**
     * @param array $filterRule
     * @return void
     */
    protected function _filterRule(array $filterRule)
    {
        $field = $filterRule[self::FIELDS];
        if (!array_key_exists($field, $this->_data)) {
            return;
        }
        if (is_array($this->_data[$field])) {
            foreach ($this->_data[$field] as $key => $value) {
                $this->_data[$field][$key] = $filterRule[self::FILTER_CHAIN]->filter($value);
            }
        } else {
            $this->_data[$field] =
                $filterRule[self::FILTER_CHAIN]->filter($this->_data[$field]);
        }
    }

Sauf que je ne comprend vraiment pas pourquoi ce cas particulier.

Quelqu'un aurait une idée ?

++

Bruno

Dernière modification par JEDI_BC (10-03-2010 16:45:21)

Hors ligne

 

#2 11-03-2010 21:23:56

JEDI_BC
Membre
Date d'inscription: 27-10-2008
Messages: 38

Re: [Zend_Filter_Input][1.10.2] Zend_Filter_Input & tableau

Ça ne parle à personne ? ;-(

Hors ligne

 

#3 12-03-2010 05:50:57

iop974
Membre
Date d'inscription: 27-02-2009
Messages: 72

Re: [Zend_Filter_Input][1.10.2] Zend_Filter_Input & tableau

Pas compris ton cas particulier? désolé :s

Hors ligne

 

#4 12-03-2010 08:50:16

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Zend_Filter_Input][1.10.2] Zend_Filter_Input & tableau

J'ai rien compris non plus.
pourquoi vn et vo n'existerais pas ??


----
Gruiiik !

Hors ligne

 

#5 12-03-2010 09:23:53

JEDI_BC
Membre
Date d'inscription: 27-10-2008
Messages: 38

Re: [Zend_Filter_Input][1.10.2] Zend_Filter_Input & tableau

Bha c'est pour valider que j'ai bien tout mon tableau au grand complet. La base c'est pas de ne pas faire confiance aux données qui arrivent et de tout vérifier/valider ? ^^

Mais bon pour faire ce que je veux je vais étendre Zend_Filter_Input et recoder _filterRule() et _validateRule()

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