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 :

imbrication de différents formulaires avec embedForm() et embedRelation


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Par défaut imbrication de différents formulaires avec embedForm() et embedRelation
    Bonjour,

    je voudrais imbriquer différents formulaires avec embedForm() et embedRelation().

    j'ai les tables suivantes:
    Article
    Convention
    Rapport

    et j'ai des relations 1-n entre article et convention et article et rapport.
    j'ai déja fait des embed à partir de la classe "ArticleForm":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       $form = new RapportForm();
       $form->setDefault('article_id', $this->object->id);
       $this->embedForm('rapport', $form);
       $this->embedRelation('Rapports');
    j'ai surchargé les méthodes saveEmbeddedForms(), doBind() et doUpdateObject() dans ma classe "ArticleForm" pour bien sauvegarder les données, pouvoir supprimer des enregistrements et éviter d'ajouter des enregistrements null. j'ai suivi exactement l'exemple de:
    http://prendreuncafe.com/blog/post/2...3-and-Doctrine

    ça marche bien, mais ma question, si je veux faire un autre embed pour la convention:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       $formConvention = new ConventionForm();
       $formConvention->setDefault('article_id', $this->object->id);
       $this->embedForm('convention', $form);
       $this->embedRelation('Conventions');
    comment je dois gérer la surcharge des méthodes saveEmbeddedForms(), doBind() et doUpdateObject() sachant qu'elles sont liées à un embed spécifique?

    j'espère que j'étais claire, merci à vous!!!

  2. #2
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Par défaut
    je suis suis pas sur que c'est une bonne façon de faire, en regardant le tuto de symfony il n'y as pas besoin de surcharger ces méthodes : http://www.symfony-project.org/more-...Advanced-Forms

    D'ailleurs pour tous ça j'ai un postValidator() qui fait tout ça.

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Par défaut
    j'ai déja regardé ce tutoriel et je l'ai appliqué. Le problème, c'est que je voudrais pouvoir supprimer des enregistrements existants (par exp dans ce cas, les photos téléchargés) et ça c'est pas géré dans le postvalidator ni dans ProductForm.

  4. #4
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Par défaut
    dans le postValidator tu peux tout lui faire faire.
    Mais c'est quoi une suppression du fichier ou d'un enregistrement en base ?

  5. #5
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Par défaut
    si je prends l'exemple du tuto symfony, suppression d'un enregistrement càd, si je fais $this->embedRelation('Photos') , je voudrais avoir la possibilité de supprimer une photo qui a été déja ajoutée à un produit.
    ça c'est pas mentionné sur le tuto.

    je reviens à ma problématique, j'ai réussi à le faire mais pour un seul embedRelation(), alors qu'il se trouve que j'en ai plusieurs dans la même classe formulaire "ArticleForm":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $this->embedRelation('Rapports');
    $this->embedRelation('Conventions);
    ...

Discussions similaires

  1. [ZF 1.11] Affichage différent formulaires avec Zend_Dojo
    Par 5h4rk dans le forum Zend_Form
    Réponses: 2
    Dernier message: 08/08/2011, 18h55
  2. [1.x] Réaliser un formulaire avec embedForm
    Par Niki59 dans le forum Symfony
    Réponses: 0
    Dernier message: 09/04/2011, 14h19
  3. [1.x] Formulaire avec embedform?
    Par jeronimo83 dans le forum Symfony
    Réponses: 3
    Dernier message: 09/04/2010, 18h11
  4. Réponses: 8
    Dernier message: 13/03/2006, 17h37
  5. Ouverture d'un formulaire avec des requêtes différentes
    Par Jérémy VAUTIER dans le forum Access
    Réponses: 3
    Dernier message: 02/03/2006, 07h31

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