Validation ZF2将输入过滤器添加到字段集

Validation ZF2将输入过滤器添加到字段集,validation,zend-framework2,fieldset,Validation,Zend Framework2,Fieldset,我需要向字段集添加其他字段,以便将某种灵活性集成到我在Zend Framework 2中创建的表单中 我想使用main表单中的方法来实现这一点 将输入字段附加到字段集没有问题,但问题始于输入验证和筛选。我不知道在字段集被添加到表单中并解析了getInputFilterSpecification部分之后,如何为字段集实现过滤器 以下是我目前的方法,可惜不起作用: public function addAdditionalField($data, $filterData = null) {

我需要向字段集添加其他字段,以便将某种灵活性集成到我在Zend Framework 2中创建的表单中

我想使用main表单中的方法来实现这一点

将输入字段附加到字段集没有问题,但问题始于输入验证和筛选。我不知道在字段集被添加到表单中并解析了getInputFilterSpecification部分之后,如何为字段集实现过滤器

以下是我目前的方法,可惜不起作用:

public function addAdditionalField($data, $filterData = null) {
    $fieldset = $this->get('additional');
    $fieldset->addElement($data);

    if ($filterData !== null) {
        $factory = new InputFactory();
        $filter = $this->getInputFilter();

        var_dump($filter->add($factory->createInputFilter(array('additional' => $filterData))));
    }
}

关于这个问题有什么想法吗?

对于我使用的非常类似的任务和配置阵列。此示例来自登录表单:

src/Module/Form/LoginForm.php

if($this->moduleSettings['enablCaptchaOnLogin'] === TRUE)
{
   $captcha = new Element\Captcha('captcha');
   $captchaAdapter = new Captcha\Dumb();
   $captchaAdapter->setWordlen(7);
   $captcha->setCaptcha($captchaAdapter)
           ->setAttribute('title', 'Help to prevent SPAM');
   $this->add($captcha);
}
在/Module/view/Module/login/index.phtml中,我使用了has()函数:

if ($form->has('captcha'))
    echo $this->formRow($form->get('captcha')) . PHP_EOL ;

我希望这会有所帮助。检查

你知道吗?这应该涵盖了您的问题。我已经使用了集合,但重点是我需要手动将自定义字段添加到由混合输入(API、数据库)定义的表单中。类似于字段集中表单的自定义生成器。我只是不知道如何为字段集包含的元素手动添加过滤器问题是您的集合/字段集应该包含所有可能的字段,包括它们的验证器。现在,如果您的配置/api显示“没有元素X”,那么您将删除元素并将该字段集的
setValidationGroup()
添加到除元素X之外的所有元素-您将删除不需要的内容,您不添加内容好的,如果元素列表及其计数设置为最大值,则没有问题-但没有。将其视为软件的自动安装服务,每个软件都有不同的自定义变量。我只能从给定的和设置的数据库中检索变量,仅此而已。@TheReporter,您找到解决方案了吗?