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 12/03/2011, 18h40   #1
Invité de passage
 
Inscription : mars 2008
Messages : 44
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 44
Points : 3
Points : 3
Par défaut Formulaire doctrine et objet

Bonjour,

J'ai un formulaire permettant de créer une nouvelle participation pour un concours donné.

Dans mon contrôleur, j'ai donc une méthode qui me permet d'initialiser un objet Participation vierge lié au bon concours pour alimenter le formulaire. J'appelle ma méthode dans executeNew(), et dans executeCreate() (je fais ensuite un bind pour bind pour renseigner les valeurs entrées par l'utilisateur).

La méthode d'initialisation du formulaire grosso modo ressemble à ça :

Code :
1
2
3
$participation = new Participation();
$participation->Concours = $concours;
$this->form = new ParticipationForm($participation);
Jusqu'ici tout fonctionne parfaitement.

Sauf qu'une partitipation peut être lié à 1 ou plusieurs newsletters (à travers un sfWidgetFormDoctrineChoice). Ces champs newsletters doivent être pré-cochés par défaut.

J'ai donc rajouté tout simplement dans ma méthode d'initialisation :

Code :
$participation->Newsletters = $concours->Newsletters;
Mes checkbox sont bien pré-cochées. Sauf qu'à l'envoi du formulaire, aucun abonnement newsletter n'est mémorisé ... Pourtant tout à l'air correct dans la requête POST envoyé.

Pour corriger le problème, je pré-renseigne les newsletters seulement pour executeNew() et pas dans executeCreate().

Mais j'aimerais bien comprendre pourquoi cela ne fonctionne pas si je pré-renseigne aussi les newsletter dans executeCreate() ? Cela pose problème ensuite pour faire le bind ?

Merci d'avance pour vos lumières !
Neveldo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 19h45   #2
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Peux-tu mettre tous le code des méthodes du contrôleur concernées ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta 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 19h41.


 
 
 
 
Partenaires

Hébergement Web