forcer l'affichage d'UN sous formulaire

forcer l'affichage d'UN sous formulaire lié à une collection sans js

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour à tous,

J'ai une entité Produit et une entité Information. Un produit possède une collection d'"Information". La navigabilité entre ces deux Entités est bidirectionnelle.

Je crée un formulaire pour ajouter un "Produit". Au moment de l'ajout, je souhaiterais qu'apparaisse un et un seul sous formulaire "Information" car lors de sa création, un produit ne peut avoir qu'une seule information. Seule une mise à jour des informations entraîne la création d'un nouvel objet "Information" lié au produit.

Donc je souhaiterais que le sous formulaire soit affiché sans qu'il y ait besoin d'une action javascript (clic sur un bouton puis affichage du sous formulaire construit grâce au prototype donné par Symfony).

Je n'ai encore trouvé aucune solution pour cela. Une piste ?

Merci

Édité par firm1

+0 -0

Salut !

Il te faut ajouter un Information vierge à ton Produit avant de construire le formulaire afin que les champs idoines s'affichent ;)

Après, s'il faut au minimum un Information dans Produit, tu peux ajouter des contraintes de validation qui vérifieront cela.

Édité par Ymox

Evitez qu'on vous dise de les lire : FAQ PHP et Symfony 2Tutoriel WAMP • Cliquez 👍 pour dire merci • Marquez vos sujets résolus

+0 -0

Je n'ai peut-être pas parfaitement compris ce que tu souhaites faire, désolé si c'est le cas, mais le mot-clef "sous-formulaire" a attiré mon attention.

Gaffe : les formulaires imbriqués (est-ce bien cela dont il s'agit ici ?) fonctionne assez mal dans certains navigateurs.

J'ai eu des ennuis assez complexes à debugger par le passé avec ce genre de bricoles et j'ai trouvé cette discussion pour appuyer mes propos.

Happiness is a warm puppy

+0 -0

Bonjour,

Sans passer par les contraintes de validation, il suffit de mettre l'option allow_add à false. Le formulaire n'acceptera qu'un seule élément Information celui qui existait avant. Et sinon tu gères le sous-form comme une collection c'est juste qu'il n'y aura qu'un seul élément, on ne pourra pas en rajouter et éventuellement tu peux mettre allow_delete à false aussi si tu souhaites qu'il soit obligatoire.

+0 -0
Auteur du sujet

Je reviens tardivement mais en fait la solution était très simple, il a suffit d'instancier l'objet de sous formulaire (sans lui assigner une quelconque valeur) et de l'affecter à l'objet du formulaire principal via la méthode "add" générée dans l'entité.

Je viens de voir que Ymox propose d'ailleurs la solution ;-)

Édité par picode

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte