gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 05:03:03 24 4
gpt4 key购买 nike

到目前为止,我一直在将输入过滤器绑定(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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com