Forms ZF2在向窗体动态添加元素后刷新输入筛选器
我有一个表单,它在Forms ZF2在向窗体动态添加元素后刷新输入筛选器,forms,dynamic,zend-framework2,zend-inputfilter,Forms,Dynamic,Zend Framework2,Zend Inputfilter,我有一个表单,它在\u construct方法中的事件中触发,以从另一个模块加载一些项。到目前为止,一个字段集从另一个模块加载并添加到表单中,request->getPost()我有字段集内元素的数据,但是$form->getData()没有字段集的数据 在将此字段集添加到表单之前,我正在调用$form->getInputFilter(),似乎调用$form->getInputFilter()不会为新添加的元素创建过滤器。那么,如何为动态事件创建inputfilters而不重新创建孔过滤器呢 或
\u construct
方法中的事件中触发,以从另一个模块加载一些项。到目前为止,一个字段集从另一个模块加载并添加到表单中,request->getPost()
我有字段集内元素的数据,但是$form->getData()
没有字段集的数据
在将此字段集添加到表单之前,我正在调用$form->getInputFilter()
,似乎调用$form->getInputFilter()
不会为新添加的元素创建过滤器。那么,如何为动态事件创建inputfilters而不重新创建孔过滤器呢
或者我应该延迟调用
$form->getInputFilter()
直到所有元素都添加到表单中吗?我后来还向表单中添加了一些被输入过滤器忽略的元素。我的解决方案很可能不是最好的,但由于您尚未收到任何其他答案,以下是我所做的: 我加了
使用Zend\InputFilter\Factory作为InputFactory代码>
在类中,我验证表单数据,然后使用
$factory = new InputFactory();
$form->getInputFilter()->add($factory->createInput(array(
'name' => 'title_str',
'required' => true,
'filters' => array(
array('name' => 'Int'),
),
)));
后来我还在表单中添加了一些被输入过滤器忽略的元素。
我的解决方案很可能不是最好的,但由于您尚未收到任何其他答案,以下是我所做的:
我加了
使用Zend\InputFilter\Factory作为InputFactory代码>
在类中,我验证表单数据,然后使用
$factory = new InputFactory();
$form->getInputFilter()->add($factory->createInput(array(
'name' => 'title_str',
'required' => true,
'filters' => array(
array('name' => 'Int'),
),
)));
@Afterdark017工作正常,而且我认为可以重置过滤器
protected function resetFilters(){
$this->filter = null;
$this->hasAddedInputFilterDefaults = false;
}
但我还没有对此进行测试。@Afterdark017正常工作,而且我认为可以重置过滤器
protected function resetFilters(){
$this->filter = null;
$this->hasAddedInputFilterDefaults = false;
}
但我还没有对此进行测试。这是可行的,而且我认为可以重置过滤器。这是可行的,而且我认为可以重置过滤器。