2 pièce(s) jointe(s)
[sf 1.4.x] Problème Formulaire un peu particulier
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:
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):
Pièce jointe 61771
Donc concrètement, le fonctionnement de la BD est simple 8-):
Mes utilisateurs sont dans la table MvProf
Mes messages dans la table Message (:mrgreen:)
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 :lol:
Pièce jointe 61765
svp ne faites pas attention au design :mrgreen:
Donc :
mon "1. Destinataire" c'est mon formulaire 'créer manuellement' (je sens que je vais me faire :aie:)
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 :D)
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.