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())
Другие вопросы по тегам