我在配置Zend_Form时遇到了困难。我有一个Zend_Form子类。表格包含一些必要的信息和一些其他信息。我希望通过数组访问其他信息。提交的数据如下所示:
$formData['required1']
$formData['required2']
$formData['addiotnalData']['aData1']
$formData['addiotnalData']['aData2']
我已经用Google搜索并尝试了我发现的所有建议(使用子格式并设置Zend_Form::setIsArray($flag)
和Zend_Form::setElementsBelongTo($array)
方法),但还没弄清楚如何执行此操作。
我做错了什么?如何设置表单元素的名称,以便我可以使用数组表示法访问数据?
答案 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()。