2011-07-06 26 views
0

在一本書上Zend框架我所遇到的一個自定義的驗證獨特的電子郵件地址。驗證器擴展了Zend_Validate_Abstract,因此實現了isValid()接口。

在接口中,方法簽名是isValid($ value)。在具體類中,它是有限的($ value,$ context = null)。

筆者解釋說,$背景變量包含$ _POST陣列和他依靠值從方法的實現數組。但是,當我嘗試重現代碼時,我的$ context數組爲null。此外,我無法在Zend_Validation參考指南中找到任何對$ context的引用,或者傳遞$ _POST值。

有沒有人遇到過這個?

順便說一句,這本書是由Keith教皇的Zend Framework 1.8的Web應用程序開發。

謝謝!

回答

2

Zend_Form_Element::isValid方法

在這裏使用時,$context數組傳遞是從Zend_Form_Element::isValid被傳遞$_POST作爲$context其通常從Zend_Form::isValid

  foreach ($value as $val) { 
       if (!$validator->isValid($val, $context)) { 
        $result = false; 
        if ($this->_hasErrorMessages()) { 
         $messages = $this->_getErrorMessages(); 
         $errors = $messages; 
        } else { 
         $messages = array_merge($messages, $validator->getMessages()); 
         $errors = array_merge($errors, $validator->getErrors()); 
        } 
       } 
      } 
+0

感謝布雷迪,好一個... –

1

它看起來像進行文件接收到的片斷Zend_Validate不完整。

此行爲手冊中描述Zend_Form_Element(CTL-F 「校驗上下文」)