Bonjour à tous,

Je suis en ce moment en train de développer ma première application symfony. Il s'agit d'une application de messagerie (boite de réception, d'envoi, nouveau message, corbeille, blablabla...)
Je rencontre quelque problèmes concernant mon formulaire d'envoi de message.
Avant toute chose posons les bases:
voici mon schema.yml(allégé):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
Destinataire:
  connection: doctrine
  tableName: destinataire
  columns:
    iddest:
      type: integer(4)
      fixed: false
      unsigned: true
      primary: true
      autoincrement: true
    idmessage:
      type: integer(4)
      fixed: false
      unsigned: true
      primary: false
      notnull: true
      autoincrement: false
    iduser:
      type: integer(4)
      fixed: false
      unsigned: true
      primary: false
      notnull: true
      autoincrement: false
  relations:
    Message:
      local: idmessage
      foreign: idmsg
      type: one
    MvProf:
      local: iduser
      foreign: idprof
      type: one
Message:
  connection: doctrine
  tableName: message
  columns:
    idmsg:
      type: integer(4)
      fixed: false
      unsigned: true
      primary: true
      autoincrement: true
    idexp:
      type: integer(4)
      fixed: false
      unsigned: true
      primary: false
      notnull: true
      autoincrement: false
    time:
      type: timestamp(25)
      fixed: false
      unsigned: false
      primary: false
      notnull: true
      autoincrement: false
    objet:
      type: string(255)
      fixed: false
      unsigned: false
      primary: false
      notnull: true
      autoincrement: false
    corps:
      type: string()
      fixed: false
      unsigned: false
      primary: false
      notnull: false
      autoincrement: false
  relations:
    MvProf:
      local: idexp
      foreign: idprof
      type: one
    Destinataire:
      local: idmsg
      foreign: idmessage
      type: many
MvProf:
  connection: doctrine
  tableName: mv_prof
  columns:
    idprof:
      type: integer(4)
      fixed: false
      unsigned: true
      primary: true
      autoincrement: true
    nom:
      type: string(45)
      fixed: false
      unsigned: false
      primary: false
      notnull: false
      autoincrement: false
    prenom:
      type: string(45)
      fixed: false
      unsigned: false
      primary: false
      notnull: false
      autoincrement: false
  relations:
    Destinataire:
      local: idprof
      foreign: iduser
      type: many
    Message:
      local: idprof
      foreign: idexp
      type: many
Bon pour faire un peu plus simple, je vous l'ai fait en graphique (les couleurs sont la pr savoir sur quel attribut porte la relation):
Nom : schema.png
Affichages : 111
Taille : 32,5 Ko

Donc concrètement, le fonctionnement de la BD est simple :
Mes utilisateurs sont dans la table MvProf
Mes messages dans la table Message ()
et ma table destinataires contient pour chaque message, autant d'enregistrement qu'il y a de destinataire.

Prenons un exemple:
Si l'utilisateur X envoi un message aux utilisateurs A,B,C et D alors au niveau de la BDD ça fait (ou du moins ça devrait faire):
-création d'un enregistrement "Message"
-création de quatre enregistrements Destinataires (reprenant l'id du message et l'id des 4 destinataires)
et c'est la que ça se gate :

Pour le choix des destinataires,je suis parti à la base sur une création "manuelle"de deux select multiple relié entre eux par un peu de JS pour que cela soit simple a prendre en main pour les utilisateurs finaux.
Le premier select contient la liste complète des contacts et l'utilisateur déplace vers la seconde liste(vide au départ), les utilisateurs à qui il souhaite envoyer le message

plutôt qu'un long discours, un petit screen
Nom : form.jpg
Affichages : 116
Taille : 61,7 Ko
svp ne faites pas attention au design
Donc :
mon "1. Destinataire" c'est mon formulaire 'créer manuellement' (je sens que je vais me faire )
mon "2. Message" c'est bien mon formulaire généré par symfony dans lequel le form de destinataire est à la fois embed et hidden (donc il est la, mais on le voit pas )

Ce que j'ai fait jusqu'à présent:
- embed le formulaire de Destinataire dans le formulaire de Message
- passer les champs relatifs aux destinataires a hidden (vu qu'ils ont déjà été choisi auparavant) dans mon select multiple.

Ce que je voudrais faire et la ou je bloque vraiment c'est arriver a lui faire comprendre, d'une manière ou d'une autre que dans mon formulaire:
++++ 'idmessage' est l'id du message qui vient d'être crée.
++++ "iduser" est déjà rempli dans mon select multiple
++++ et lui faire créer autant d'enregistrement qu'il y a de destinataires


Ca va faire qq jours que je bloque la dessus et plus j'avance plus je me dis que mon histoire de select multiple manuel ac du JS, ça embrouille tout, mais je ne vois pas comment, avec les outils symfony gérer mon problème d'enregistrement multiple (même si ces outils existent forcément).
Voila, j'espère avoir été assez clair, peut être auriez vous quelque idées pour me tirer de ce mauvais pas?

Merci d'avance de porter de l'intérêt à mon problème.