如何配置Zend_Form以使用数组表示法?

4

我在配置Zend_Form时遇到了困难。我有一个Zend_Form子类。表单有一些必填信息和一些附加信息。我希望可以通过数组访问附加信息。提交的数据将类似于以下内容:

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

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

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

2个回答

2

问题已解决!问题出在一个自定义装饰器上。

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

元素将以 subform-elementname 的ID和subform[elementname] 的名称呈现。


嗨,我有同样的问题,并做了你说的更改。但是根据我的异常,这并没有起作用。那自定义装饰器呢? - Manish Jangir

0
继续解释一下,因为$form->setIsArray(TRUE)与我的自定义装饰器不兼容。我需要使用自定义的ViewScript装饰器来渲染Zend_Form_Element。

问题在于它用$this->element->getName()来渲染元素名称。我必须在ViewScript装饰器脚本中使用$this->element->getFullyQualifiedName()。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接