Zend 2 - Select Element的默认InArray Validator丢失

时间:2014-01-16 15:09:14

标签: zend-framework2 zend-validate

向Zend 2.2中的select元素添加过滤器时遇到问题。创建select元素时,会在此元素中添加默认验证器:

  

此元素将InArray验证器添加到其输入过滤器规范中,以便在服务器上验证所选值是否属于值。

在我向该元素添加自定义过滤器之前,这样可以正常工作:

$filter = new Input('element_name');
$filter->setRequired(true);
$this->add($filter);

将Zend \ InputFilter \ Input添加到Zend \ InputFilter \ InputFilter中,稍后将其添加到我的表单中。从现在开始,默认验证器将丢失。

如何在不丢失默认验证器的情况下为表单元素添加过滤器?

我错过了什么吗?我不认为这是默认行为,因为每个人都在拼命询问如何停用它。甚至还有一个属性可以停用它('disable_inarray_validator'),但是,我想保留该验证器而不将selectbox的所有条目都传递给我的InputFilter。此外,我在Zend 2文档中找不到任何内容。我想解决方案必须简单。提前谢谢。

注意:当我将InputFilter与InputFilterManager一起添加到表单时也会发生同样的情况。

1 个答案:

答案 0 :(得分:0)

请先查看我对您问题的评论。只有我认为可能有用的东西,我没有试图让它工作是:

$input->getFilterChain()
      ->attachByName('stringtrim')

$input->getFilterChain()
    ->attach(new StringTrim())