Zend 2 - по умолчанию InArray Validator для выбранного элемента теряется
У меня есть проблема при добавлении фильтра в мои элементы выбора в Zend 2.2. При создании элемента select к этому элементу добавляется валидатор по умолчанию:
Этот элемент добавляет валидатор InArray в спецификацию входного фильтра, чтобы проверить на сервере, принадлежит ли выбранное значение этим значениям.
Это работает нормально, пока я не добавлю пользовательский фильтр к этому элементу:
$filter = new Input('element_name');
$filter->setRequired(true);
$this->add($filter);
Этот Zend \ InputFilter \ Input добавляется в Zend \ InputFilter \ InputFilter, который позже добавляется в мою форму. Отныне валидатор по умолчанию потерян.
Как я могу добавить фильтр для элементов формы, не теряя их валидаторы по умолчанию?
Я что-то пропустил? Я не ожидаю, что это будет поведение по умолчанию, потому что все отчаянно спрашивают, как его отключить. Есть даже атрибут для его деактивации ("disable_inarray_validator"), однако я хочу сохранить этот валидатор, не передавая все мои записи из окна выбора в мой InputFilter. Также я не нашел ничего в документации Zend 2. Я думаю, что решение должно быть чем-то простым. Заранее спасибо.
Примечание: то же самое происходит, когда я добавляю InputFilter с InputFilterManager к форме.
1 ответ
Пожалуйста, сначала посмотрите мой комментарий к вашему вопросу. Единственное, что я думал, может сработать, что я не пытался заставить это работать:
$input->getFilterChain()
->attachByName('stringtrim')
или же
$input->getFilterChain()
->attach(new StringTrim())