【发布时间】:2018-02-26 12:13:56
【问题描述】:
我在 ZF3 中有一个动态的逐步设置表单。我使用字段集和默认表单来显示当前表单。默认表单仅添加了一个 csrf 令牌和一个提交按钮。表单实例化如下所示:
$form = new ReportForm();
foreach($requestedFieldsetNames as $fieldSetName) {
$form->add([
'type' => $this->registeredFieldSets[$fieldSetName],
'options' => [
'use_as_base_fieldset' => true,
]
]);
}
return $form;
表单显示正确,但是当我提交时,调用isValid()时抛出以下异常:
Zend\InputFilter\BaseInputFilter::setData expects an array or Traversable argument; received string
我传递给表单的数据包含以下内容:
object(Zend\Stdlib\Parameters)[89]
private 'storage' (ArrayObject) =>
array (size=2)
'entityType' => string 'drivers' (length=7)
'csrf' => string '0c435d5f0ca21132ce85e26df65d2e5e-daf2a8843f01e607f23ce48a2c209262' (length=65)
'submit' => string 'Next' (length=7)
entityType 是字段集的一部分。当我将 Traversable 对象传递给表单时,我不明白为什么会引发此异常。这发生在其他人身上吗?我该如何解决?提前致谢!
【问题讨论】:
-
最好知道您的字段集中是否有 Collection?你也可以发布你的字段集吗?
标签: php zend-framework zend-form zend-framework3