我需要在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))));
}
}
关于这个问题的任何问题?
答案 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