ZF2将输入过滤器添加到Fieldset

时间:2013-07-29 08:30:18

标签: validation zend-framework2 fieldset

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

我希望使用主窗体中的方法来实现这一点。

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

这是我目前的方法,遗憾的是不起作用:

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))));
    }
}

关于这个问题的任何问题?

1 个答案:

答案 0 :(得分:0)

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

的src /模块/表格/ 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 ;

我希望这会有所帮助。检查http://framework.zend.com/apidoc/2.2/classes/Zend.Form.Form.html