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 22/07/2011, 17h07   #1
Invité de passage
 
Homme Renaud Bastard
Développeur Web
Inscription : juillet 2011
Messages : 2
Détails du profil
Informations personnelles :
Nom : Homme Renaud Bastard
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juillet 2011
Messages : 2
Points : 0
Points : 0
Par défaut Enregistrement multiple formulaire

Bonjour,

J'ai beau chercher et je ne trouve pas ma réponse exact.

Voilà j'ai un formulaire avec un champ "Choice Multiple" :

Code :
1
2
$this->widgetSchema['destinataire'] = new sfWidgetFormDoctrineChoice(array('expanded' => true, 'multiple' => true, 'model' => $this->getRelatedModelName('SfGuardUser')));
                $this->validatorSchema['destinataire'] = new sfValidatorDoctrineChoice(array('multiple' => true, 'model' => $this->getRelatedModelName('SfGuardUser')));
L'utilisateur a donc le choix de choisir une ou plusieurs options, j'aimerais maintenant modifier l'enregistrement dans ma base pour créer un enregistrement spécifiques à chaque option. Car cette option correspond à un ID et mon champ dans la base est configuré :

Code :
1
2
3
4
5
 
    destinataire:
      type: integer
      unsigned: true
      notnull: true
En relation avec un id d'une autre table.

Cordialement
zMOOthies est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 13h53   #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 mettres ton shema.yml (du moins la partie qui concerne ton problème) ?
__________________
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
Vieux 26/07/2011, 16h23   #3
Invité de passage
 
Homme Renaud Bastard
Développeur Web
Inscription : juillet 2011
Messages : 2
Détails du profil
Informations personnelles :
Nom : Homme Renaud Bastard
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juillet 2011
Messages : 2
Points : 0
Points : 0
Voici le bout du schema.yml qui correspond à mon module :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
MlMail:
  connection: doctrine
  tableName: ml_mail
  actAs:
    Timestampable: ~
  columns:
    id:
      type: integer
      unsigned: true
      notnull: true
      primary: true
      autoincrement: true
    destinataire:
      type: integer
      unsigned: true
      notnull: true
    expediteur:
      type: integer
      unsigned: true
      notnull: true
    lu :
      type: boolean
      notnull: true
    sujet :
      type: string()
      fixed: false
      unsigned: false
      primary: false
      notnull: true
      autoincrement: false
    contenu :
      type: string()
      fixed: false
      unsigned: false
      primary: false
      notnull: false
      autoincrement: false
  relations:
    SfGuardUser1:     { class: SfGuardUser, local: destinataire, foreign: id, foreignAlias: MailDestinataire}
    SfGuardUser2:     { class: SfGuardUser, local: expediteur, foreign: id, foreignAlias: MailExpediteur }
Mon champ me renvoi un tableau et je ne veut pas l'enregistrer en tant que tableau, j'aimerais qu'il me créer un nouvel enregistrement pour chaque option sélectionnée.
zMOOthies est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 11h59   #4
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
Tu peux supprimer tout ce qui est fixed: false, la valeur false est la valeur par défaut, cela va alléger le schéma.

J'écrirais tes relations ainsi
Code :
1
2
3
4
5
6
7
8
9
  relations:
    UserDestinataire:
      class: SfGuardUser
      local: destinataire
      foreignAlias: MailDestinataire
    UserExpediteur:
      class: SfGuardUser
      local: expediteur
      foreignAlias: MailExpediteur
Tu peux virer foreign: id qui est la valeur par défaut.

Par contre, je ne vois pas comment tu veux stocker le choix multiple de destinataires alors que tes deux relations sont en 1-n... elles devraient être en n-n...
__________________
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 07h20.


 
 
 
 
Partenaires

Hébergement Web