4

我在配置 Zend_Form 时遇到了困难。我有一个 Zend_Form 子类。该表格包含一些必需的信息和一些附加信息。我希望可以通过数组访问其他信息。提交的数据将如下所示:

$formData['required1']
$formData['required2']
$formData['addiotnalData']['aData1']
$formData['addiotnalData']['aData2']

我已经用谷歌搜索并尝试了我找到的所有建议(使用 subForms 并设置 Zend_Form::setIsArray($flag)andZend_Form::setElementsBelongTo($array)方法),但还没有弄清楚如何做到这一点。

我究竟做错了什么?如何设置表单元素的名称,以便可以使用数组表示法访问数据?

4

2 回答 2

2

整理好了!问题是正在使用的自定义装饰器。

//In
$subForm = new Form_SubForm(); //this can be a Zend_Form or Zend_Form_SubForm     
$subForm->setIsArray(true);
$this->addSubForm($subForm, 'subform');

元素将使用 idsubform-elementname和 name 呈现subform[elementname]

于 2009-12-18T14:53:24.700 回答
0

扩展答案,因为 $form->setIsArray(TRUE) 没有与我的元素自定义装饰器一起使用。渲染 Zend_Form_Element 需要我的自定义 ViewScript 装饰器。

问题是,它使用 $this->element->getName() 渲染元素名称。我不得不在 ViewScript 装饰器脚本中使用 $this->element->getFullyQualifiedName() 。

于 2013-10-11T00:07:18.967 回答