3

J'ai de la difficulté à configurer Zend_Form. J'ai une sous-classe Zend_Form. Le formulaire contient certaines informations requises et quelques informations supplémentaires. Je veux que les informations supplémentaires soient accessibles via un tableau. Les données présentées ressemblera à quelque chose comme ceci:Comment configurer Zend_Form pour utiliser la notation de tableau?

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

J'ai googlé cela et a essayé toutes les suggestions que j'ai trouvé (à l'aide sous-formulaires et fixant les modalités Zend_Form::setIsArray($flag) et Zend_Form::setElementsBelongTo($array)), mais n'ont pas compris comment faire ce.

Qu'est-ce que je fais mal? Comment puis-je définir les noms des éléments de formulaire afin que je puisse accéder aux données avec la notation de tableau?

Répondre

2

Vous l'avez triée! Le problème est un décorateur personnalisé qui était utilisé.

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

éléments seront rendus avec un identifiant de subform-elementname et un nom de subform[elementname].

+0

Salut, j'ai le même problème et fait les changements que vous avez dit. Mais cela ne fonctionne pas selon mes exceptions. Qu'en est-il des décorateurs personnalisés? –

0

Pour développer la réponse, car $ form-> setIsArray (TRUE) ne fonctionnait pas avec mon décorateur personnalisé pour les éléments. Mon décorateur ViewScript personnalisé était nécessaire pour rendre le Zend_Form_Element.

Le problème, c'était de rendre le nom de l'élément avec $ this-> element-> getName(). J'ai dû utiliser $ this-> element-> getFullyQualifiedName() dans le script décorateur ViewScript.

Questions connexes