Search code examples
phpzend-frameworkzend-formzend-form-elementzend-form-sub-form

How do configure Zend_Form to use array notation?


I'm having difficulty configuring Zend_Form. I have a Zend_Form sub-class. The form has some required information and some additional information. I want the additional information to be accessible via an array. The submitted data will look something like this:

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

I've Googled this and tried all the suggestions I've found (using subForms and setting the Zend_Form::setIsArray($flag) and Zend_Form::setElementsBelongTo($array) methods), but have not figured out how to do this.

What am I doing wrong? How do I set the names of form elements so that I can access the data with array notation?


Solution

  • Sorted it! The problem is a custom decorator that was being used.

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

    Elements will be rendered with a id of subform-elementname and a name of subform[elementname].