2010-06-16 4 views
0

J'ai donc un formulaire qui utilise un filtre personnalisé (qui est vraiment juste une copie de Zend_Filter_Null). Quand je l'appelle directement, cela fonctionne:Zend Framework: Mon filtre de formulaire personnalisé ne filtre pas!

$makeZeroNull = new My_Filter_MakeZeroNull(); 
$null = $makeZeroNull->filter('0'); 
//$null === null 

Cependant, lorsque je tente de l'ajouter à un élément sous ma forme, il ne filtre pas la valeur quand je l'appelle getValue().

class My_Form extends Zend_Form { 
    public function init() { 
     $makeZeroNull = new My_Filter_MakeZeroNull(); 
     $this->addElement('text', 'State_ID', array('filters' => array($makeZeroNull))); 
    } 
} 

//in controller 
if ($form->isValid($_POST)) { 
    $zero = $form->State_ID->getValue(); 
    //getValue() should return null, but it is returning 0 
} 

Que se passe-t-il? Qu'est-ce que je fais mal?

Répondre

0

Mise à jour: maintenant je me rends compte que cela ne fonctionne pas, alors je dois trouver une autre solution

La seule façon dont j'ai pu résoudre ce problème a été d'ajouter spécifiquement le filtre après avoir ajouté à la forme:

class My_Form extends Zend_Form { 
    public function init() { 
     $makeZeroNull = new Zend_Filter_Null(); 
     $this->addElement('text', 'State_ID'); 
     $this->getElement('State_ID')->addFilter($makeZeroNull); 
    } 
} 
Questions connexes