2017-06-14 2 views
1

En relation avec ce problème: https://github.com/sonata-project/SonataCoreBundle/issues/408, J'ai un comportement inattendu d'un sonata_type_collection personnalisé.sonata_type_collection est effacé sur preSubmit

La collection est utilisée comme un modèle EAV pour créer des formes dynamiques à l'aide d'une collection de type sonata_type.

Lors de la soumission du formulaire avec une erreur (par exemple un champ obligatoire vide), la forme rendue à nouveau perd sa structure. La collection est construite dans un événement de formulaire PRE_SET_DATA, mais lors de la soumission, l'événement preSubmit «détruit» la collection créée dans PRE_SET_DATA.

Ma question, y a-t-il un moyen d'éviter l'effacement de la collection au moment de l'envoi?

Répondre

1

Le ResizeFormListener attaché à votre champ de formulaire est probablement à l'origine de ce comportement car il supprime les lignes vides de la collection lorsque vous envoyez le formulaire.

Vous devez ajouter l'option modifiable => false lors de l'ajout de votre champ de collection au FormMapper.

Avec cette option, ResizeFormListener ne sera pas attaché, ainsi les éléments de collection vides ne seront pas supprimés lors de la soumission.

+0

Merci. L'option de type «modifiable» résout mon problème, la collection n'est pas réinitialisée à l'instant preSubmit. – PapsOu