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é):
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):
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
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
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.
Partager