Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/02/2012, 15h17   #1
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 311
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 311
Points : 33
Points : 33
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 :
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 :
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!!!
flora806 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 17h23   #2
Membre chevronné
 
Avatar de kenny.kev
 
Homme
Inscription : janvier 2007
Messages : 575
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Indre et Loire (Centre)

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

Informations forums :
Inscription : janvier 2007
Messages : 575
Points : 690
Points : 690
Envoyer un message via MSN à kenny.kev
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.
kenny.kev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 09h41   #3
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 311
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 311
Points : 33
Points : 33
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.
flora806 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 11h20   #4
Membre chevronné
 
Avatar de kenny.kev
 
Homme
Inscription : janvier 2007
Messages : 575
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Indre et Loire (Centre)

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

Informations forums :
Inscription : janvier 2007
Messages : 575
Points : 690
Points : 690
Envoyer un message via MSN à kenny.kev
dans le postValidator tu peux tout lui faire faire.
Mais c'est quoi une suppression du fichier ou d'un enregistrement en base ?
kenny.kev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 11h36   #5
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 311
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 311
Points : 33
Points : 33
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 :
1
2
3
4
 
$this->embedRelation('Rapports');
$this->embedRelation('Conventions);
...
flora806 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h29.


 
 
 
 
Partenaires

Hébergement Web