요소가 있습니다. 사용자 지정 유효성 검사기와 사용자 지정 필터를 추가하고 싶습니다. validator는, 입력이 몇개인가의 값의 1 개 (살)인지를 확인한 다음, 필터는 입력에 custom value를 추가합니다. 즉, 필터를 실행하기 전에 원래 입력을 확인해야합니다. 나는이 순서대로 행한다.이 Validator 다음에이 필터를 실행하는 방법
$element = new Zend_Form_Element_Text('element');
$element->addValidator('PermittedValue', false);
$element->addFilter('TotalHyphen', false);
$this->addElement($element);
그러나이 순서는 존중되지 않는다. 필터가 먼저 실행되고 데이터가 변경되면 유효성 검사기는 필터링 된 데이터에서 실행되므로 유효한 입력에 대해서도 항상 실패합니다. 그것은이 의도적
주입니다 documentation에서 보인다 검증 필터링 값에서 작동 Zend_Form_Element :: isValid() 검증 이전에 제공된 필터 체인을 통해 필터 값. 자세한 내용은 필터 섹션을 참조하십시오.
어떻게 유효성 검사기와 필터가 실행되는 순서를 지정할 수 있습니까?
+1. 아주 좋아 보인다. 또한 setPostValidateFilters() 메서드가 'postValidateFilters'키에 대해 자동으로 (예?) 호출된다는 것을 알지 못했습니다. – Marcin
@Marcin : 옵션이 작동하는 방식이라고 생각합니다. 옵션 이름과 "일치"하는 메소드가 있다면, 그 메소드는'setOptions()'중에 호출된다. –
+1 매우 좋은 구현 – tawfekov