zend-form - 将 inputFilter 附加到动态创建的字段元素

标签 zend-form zend-framework2 validation

到目前为止,我一直在将输入过滤器绑定(bind)到模块中的表单,换句话说,我一直在表单中创建元素,将输入过滤器添加到模块端的元素。

例如检查这个example

现在我正在根据需要动态创建文本字段元素,就像我的表单中的这样

//Form
public function addNamesTextFieldElement($names)
    {
        foreach($names as $name)
        {
            $nameTextField = new Element\Text($name->getName());
            $nameTextField->setAttribute('type', "text");
            $nameTextField->setLabel($name->getName());

            $this->add($nameTextField );
        }
    }

将输入过滤器添加/附加到此类动态生成的元素的最佳方法是什么。

最佳答案

我可能不会使用这种方法,但如果您已经为表单分配了一个 InputFilter,那么类似这样的方法是可行的:

public function addNamesTextFieldElement($names)
{
    $factory     = new InputFactory();
    foreach($names as $name)
    {
        $nameTextField = new Element\Text($name->getName());
        $nameTextField->setAttribute('type', "text");
        $nameTextField->setLabel($name->getName());

        $this->add($nameTextField );

        $this->getInputFilter()->add(
            $factory->createInput(array(
                'name'     => $name->getName(),
                'required' => true,
                'filters'  => array(
                    array('name' => 'StripTags'),
                    array('name' => 'StringTrim'),
                ),
                'validators' => array(
                    array(
                        'name'    => 'StringLength',
                        'options' => array(
                            'encoding' => 'UTF-8',
                            'min'      => 1,
                            'max'      => 100,
                        ),
                    ),
                ),
            ))
        );
    }
}

关于zend-form - 将 inputFilter 附加到动态创建的字段元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14455433/

相关文章:

html - 如何在 Zend_Form 中为表格布局自定义错误输出

jquery - Zend 表单 : How to create a 'create account form' that checks for unique username?

jquery - 使用 jQuery 或 Zend Form 的电话号码验证器/过滤器?

zend-framework - 需要使用 Zend_Form_Element_Checkbox 的复选框数组

jQuery 验证自定义包装器

php - Zend\Session\SessionManager 和 cookie_lifetime

doctrine-orm - 确定 Composer 子依赖

controller - ZF2 在 Controller 中使用翻译器

asp.net - 一个按钮可以验证更多验证组吗?

javascript - 来自网站联系表单的垃圾邮件响应绕过 'required' 和 'pattern' 属性