IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Formulaire imbriqués et héritage d'entités


Sujet :

Symfony PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Formulaire imbriqués et héritage d'entités
    Bonjour à tous,

    J'ai beau chercher sur le net, le book, le cook-book, je n'arrive pas à solutionner mon problème :

    J'ai les entités suivante : Article, Elements, Paragraphe et Gallery.
    Paragraphe et Gallerie étendent Elements. Et, vous l'aurez deviné, Article a une collection d'éléments.

    J'essaie désespérément depuis une semaine de coder un formulaire permettant :
    - l'édition des attributs de l'entité Article,
    - de présenter un menu déroulant proposant d'ajouter soit un "Paragraphe", soit une "Gallery", suivi d'un bouton "ADD",
    - lorsqu'on clique sur "ADD", et selon le choix dans le menu, ajouter un "sous formulaire" permetant la saisie d'u "Paragraphe" ou d'une "Gallerie".

    J'ai essayé plein de truc (listener avec à peut prêt tous les évènements disponibles, biduler le contrôleur pour ajouter le sub-form lorsque isClicked du boutton "ADD" est vrai -> ça fonctionne mais que pour un seul ajout et je suis quasiment sûre que ça ne fonctionnera pas en modification, .... ), mais là franchement je n'ai plus d'idée.

    Merci de votre aide.

  2. #2
    Membre habitué
    Ingénieur d'études et de développement
    Inscrit en
    Juin 2009
    Messages
    112
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur d'études et de développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2009
    Messages : 112
    Points : 154
    Points
    154
    Par défaut
    Salut,

    As-tu essayé avec les formulaires imbriqués ? A lire ton problème cela devrait être solutionner avec cette méthode car tes objets sont liés entre eux par des relations.

    Paragraphe et galerie étendent élément de quel façon ?
    Héritage doctrine ? (lequel) héritage php simple ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour et merci de t'intéressais à mon problème.

    L'héritage est bien au niveau des entités (doctrine, une table par classes).
    Oui j'ai essayé avec des formulaires imbriqués.
    Je n'ai malheureusement pas de code à poster car à force de tester plein de trucs, j'ai plus rien de représentatif...

    Voilà le test le plus probant que j'ai effectué :

    J'ai déclaré un formulaire ArticleType avec 2/3 attributs, plus un élément "choice", non mappé permettant de choisir à l'aide d'un menu déroulant si l'utilisateur veut ajouter à l'article un paragraphe ou une galerie.
    J'ai créé un listener dans lequel je teste si le bouton "ADD" et cliqué, ainsi que la valeur de mon menu déroulant. Je cherche alors a ajouter le sous formulaire correspondant (ParagrapheType ou GalleryType selon le choix).

    Le paradoxe est que pour savoir si l'utilisateur a cliqué sur le bouton "ADD", je dois écouter l'évènement POST_SUBMIT (les autres évènements me retournent toujours FALSE sur isClicked() du bouton), et là du coup je ne peux plus ajouter de sous formulaire.
    En effet une exception est levée me signalant que je ne peux pas ajouter de "children" puisque le formulaire est déjà soumis.

    Cette approche était séduisante car m'aurait permis de constituer tous les éléments d'un article (éventuellement plusieurs paragraphe, plusieurs galerie voir d'autres "objets" héritant également de la classe Element), et d'effectuer une validation globale...

    Tampis, je vais probablement adopter une autre approche plus traditionnelle en présentant simplement à l'écran plusieurs formulaires indépendants, avec une validation pour chacun d'eux et un soupçons d'Ajax...

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Février 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Salut @axoloth,

    c'est vrai que cette discussion date de longtemps, mais je me sens obligé de la réouvrir, car j'ai aujourd'hui un cas similaire.
    J'aimerais donc savoir si vous avez pu trouver la solution à ce problème.
    Je me suis promener un peu partout, mais je n'ai rien trouvé qui puisse m'aider.

    Merci de votre retour

Discussions similaires

  1. [2.x] Formulaires imbriqués, recup entité parente
    Par symfony_dev dans le forum Symfony
    Réponses: 14
    Dernier message: 24/04/2012, 19h12
  2. Réponses: 4
    Dernier message: 30/08/2011, 18h30
  3. 2 formulaires imbriqués
    Par Invité dans le forum Langage
    Réponses: 16
    Dernier message: 11/05/2006, 08h54
  4. formulaires imbriqués
    Par Nounoursonne dans le forum Langage
    Réponses: 34
    Dernier message: 18/11/2005, 14h18
  5. probleme deux formulaires imbriqués
    Par rony dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/06/2005, 18h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo