2011-07-06 3 views
0

Zend Framework의 책에서 고유 한 이메일 주소에 대한 맞춤 검사기를 발견했습니다. 유효성 검사기는 Zend_Validate_Abstract를 확장하므로 isValid() 인터페이스를 구현합니다.

인터페이스에서 메서드 서명은 isValid ($ value)입니다. 구체적인 클래스에서 isValid ($ value, $ context = null)입니다.

저자는 $ context 변수에 $ _POST 배열이 포함되어 있으며 배열의 값을 메서드의 구현에 의존한다고 설명합니다. 그러나 코드를 재현하려고하면 $ $ context 배열이 null입니다. 또한 Zend_Validation 참조 가이드에서 $ context에 대한 참조를 찾을 수 없거나 $ _POST 값을 전달할 수 없습니다.

누구도이 문제를 알고 있습니까?

이 책은 Keith Pope의 Zend Framework 1.8 웹 응용 프로그램 개발입니다.

감사합니다.

답변

2

Zend_Form_Element::isValid있어서 여기

사용할 때 $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

그것의 설명서 같다로부터 수신되는 $_POST$context로 통과 Zend_Form_Element::isValid에서 니펫 Zend_Validate가 불완전합니다.

이 동작은 Zend_Form_Element (CTL-F "검증 컨텍스트")