У меня есть элемент. Я хочу добавить к нему настраиваемый валидатор и настраиваемый фильтр. Валидатор проверяет, является ли ввод одним из нескольких разрешенных значений, затем фильтр добавляет к вводу некоторые пользовательские значения. Это означает, что я должен сначала проверить исходный ввод, прежде чем запускать фильтр. делаю в таком порядке
$element = new Zend_Form_Element_Text('element');
$element->addValidator('PermittedValue', false);
$element->addFilter('TotalHyphen', false);
$this->addElement($element);
но этот порядок не соблюдается. Фильтр запускается первым и изменяет данные, затем валидатор работает с отфильтрованными данными, что означает, что он всегда терпит неудачу даже для действительного ввода. Из документации следует, что это сделано намеренно
Примечание. Проверка работает с отфильтрованными значениями. Zend_Form_Element::isValid() фильтрует значения через предоставленную цепочку фильтров перед проверкой. Дополнительную информацию см. в разделе «Фильтры».
Как указать порядок запуска валидаторов и фильтров?