Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
J'ai un formulaire qui renvoi un tableau multi-dimensionel genre :
$_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 :
/** * @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
Pas compris ton cas particulier? désolé :s
Hors ligne
J'ai rien compris non plus.
pourquoi vn et vo n'existerais pas ??
Hors ligne
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
Pages: 1