Mam element. Chcę dodać do niego niestandardowy weryfikator i filtr niestandardowy. Walidator upewnia się, że dane wejściowe są jedną z kilku dozwolonych wartości, a następnie filtr dodaje do wejścia wartości niestandardowe. Oznacza to, że najpierw muszę sprawdzić oryginalne dane wejściowe przed uruchomieniem filtra. Robię to w tej kolejności:Sposób wykonania tego filtru po tym Validatorze
$element = new Zend_Form_Element_Text('element');
$element->addValidator('PermittedValue', false);
$element->addFilter('TotalHyphen', false);
$this->addElement($element);
, ale to zamówienie nie jest przestrzegane. Filtr uruchamia się jako pierwszy i zmienia dane, a następnie walidator działa na filtrowanych danych, co oznacza, że zawsze kończy się niepowodzeniem, nawet w przypadku prawidłowego wprowadzania danych. Wydaje się, ze documentation że jest to celowe
Uwaga: Walidacja Działa filtrowanych wartości Zend_Form_Element :: isValid() Filtry wartości poprzez dołączonego łańcucha filtra wcześniejszej walidacji. Zobacz sekcję Filtry, aby uzyskać więcej informacji na temat .
Jak mogę określić kolejność uruchamiania walidatorów i filtrów?
+1. Wygląda bardzo ładnie. Nie wiedziałem również, że metoda setPostValidateFilters() zostanie wywołana automatycznie (tak?) Dla klucza "postValidateFilters". – Marcin
@Marcin: Myślę, że tak działają opcje. Jeśli istnieje metoda, która "pasuje" do nazwy opcji, wówczas ta metoda zostanie wywołana podczas 'setOptions()'. –
+1 bardzo ładna realizacja – tawfekov