2010-08-05 21 views
1

Je travaille avec une série de formulaires dans lesquels des sous-formulaires sont incorporés et j'essaie de déterminer si je peux faire que getValues ​​renvoie les valeurs sans la notation de tableau sur le sous-formulaire.Zend_Form_SubForm aplanissement de la notation de la matrice avec getValues ​​()

-à-dire:

$form = new Zend_Form(); 
$subForm = new Zend_Form_SubForm(); 
$form->addSubForm($subForm, 'contact'); 

$form->addElement(new Zend_Form_Element_Text('name')); 
$subForm->addElement(new Zend_Form_Element_Text('phone')); 

var_dump($form->getValues()); 

me donne la sortie:

array(2) { 
    ["name"]=> 
    NULL 
    ["contact"]=> 
    array(1) { 
    ["phone"]=> 
    NULL 
    } 
} 

Mais je fait comme la sortie d'être:

array(2) { 
    ["name"]=> 
    NULL 
    ["phone"]=> 
    NULL 
} 

un moyen facile de faire cela sans écraser Zend_Form fonctionne-t-il?

Répondre

1

Quelque chose comme cela peut être un début:

$data = array(); 
foreach ($form->getSubForms() as $subform) { 
    $data += $subform->getValues(); 
} 
3

Vous pouvez le faire tout simplement en utilisant:

$subform->setIsArray(false);