2010-06-16 2 views
0

그래서 사용자 정의 필터 (실제로는 Zend_Filter_Null 사본)를 사용하는 양식이 있습니다. 내가 직접 호출하면 작동합니다Zend Framework : 내 사용자 지정 양식 필터가 필터링되지 않습니다!

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

을 그러나, 나는 내 양식의 요소에 추가하려고 할 때 나는 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 
} 

무슨 일입니까? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

0

업데이트 :가 지금은 작동하지 않는이, 그래서 다른 솔루션

내가 특별히 추가 한 후 필터를 추가 할이 문제를 해결할 수이었다 유일한 방법을 마련 할 필요가 실현 형태 :

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); 
    } 
}