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

时间:2009-12-18 14:34:55

标签: php zend-framework zend-form zend-form-element zend-form-sub-form

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

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

我已经用Google搜索并尝试了我发现的所有建议(使用子格式并设置Zend_Form::setIsArray($flag)Zend_Form::setElementsBelongTo($array)方法),但还没弄清楚如何执行此操作。

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

2 个答案:

答案 0 :(得分: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,名称为subform[elementname]

答案 1 :(得分:0)

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

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