Zend framework2 ZF2嵌套数据验证
我在试着做我的验证。我以如下格式将数据发布到控制器:Zend framework2 ZF2嵌套数据验证,zend-framework2,zend-form,zend-inputfilter,zend-form-fieldset,Zend Framework2,Zend Form,Zend Inputfilter,Zend Form Fieldset,我在试着做我的验证。我以如下格式将数据发布到控制器: [ 'property' => 'value', 'nested_property' => [ 'property' => 'value', // ... ] ] 我已将字段/过滤器和表单划分为不同的类,并将其聚集在表单的控制器中,如下所示: public function __construct($name, $options) { // ... $
[
'property' => 'value',
'nested_property' => [
'property' => 'value',
// ...
]
]
我已将字段/过滤器和表单划分为不同的类,并将其聚集在表单的控制器中,如下所示:
public function __construct($name, $options)
{
// ...
$this->add(new SomeFieldset($name, $options));
$this->setInputFilter(new SomeInputFilter());
}
但它不能正常工作,看起来它只是忽略了嵌套数组(或者忽略了所有内容)。我错过了什么
谢谢。如果使用
inputfilter
类,则需要像设置表单(包括字段集)一样设置inputfilter
所以当你有这样一个结构:
1.1嵌套字段集
1.2另一个字段集
1.1嵌套的FielsteInputFilter
1.2另一个FieldSetInputFilter
类示例表单扩展表单
{
公共函数构造($name,$options)
{
//处理依赖关系
父项::_构造($name,$options);
$this->setInputFilter(新示例InputFilter());
}
公共函数init()
{
//表单中的某些字段
$this->add(newsomefieldset('SomeFieldset'));
}
}
类SomeFieldset扩展了Fieldset
{
公共函数_构造($name=null,数组$options=[]))
{
父项::_构造($name,$options);
}
公共函数init()
{
//一些领域
}
}
类ExampleInputFilter扩展InputFilter
{
公共函数构造()
{
//为表单配置验证
$this->add(新建SomeFieldsetInputFilter(),'SomeFieldset');
}
}
类SomeFieldsetInputFilter扩展了InputFilter
{
公共函数构造()
{
//为SomeFieldset配置验证
}
}
因此,为这些情况配置inputFilter的重要部分是,在inputFilter
类中使用:$this->add($input,$name=null)
时,需要重用字段集的名称