|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Étudiant Inscription : avril 2011 Messages : 3 ![]() |
Bonjour,
Dans symfony les formulaires sont souvent considérés comme un framework à part entière tellement ils peuvent être complexes. Je dois avouer que j'ai beaucoup de mal à les appréhender... Je sais que ce genre de post est très présent sur le forum mais je n'ai jamais réussi (pour le moment) à comprendre correctement et à appliquer à mon cas les réponses donnée. Voilà mon problème : Je travail sur un réseau social à la facebook et j'ai besoin qu'un utilisateur puisse envoyer un message privé à un autre utilisateur. Voici la structure de la bdd : Code :
J'espère avoir été assez clair, n'hésitez pas à me demander de plus amples informations/explications. Merci d'avance de votre aide. |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Manifestement ton schéma est récupéré d'une base existante. Il est fortement recommandé de créer le schéma directement et de générer la base de donnée avec plutôt que le contraire. En effet, le shema.yml n'est pas uniquement la description de la base mais surtout celle des objets du modèle permettant de la gérer.
Ton schéma revu à ma façon, une recherche dans le forum te donnera les explications nécessaire à comprendre les modifications. Code yaml :
Je ne suis pas sur que le fait de stocker les receivers dans une liaison soit une bonne idée, un champ destA devrait suffir dans le message, de plus des champs destC et destCC seraient un plus intéressant. A mon avis il faut dupliquer les messages reçu pour chaque destinataire (si non comment traiter les suppression partiel. Où alors créer une table de liaison n-n entre user et message pour qui à le message dans sa boite. Si le lien est effacer, on supprime cet enregistrement. Et si c'est le dernier n-n d'un message on supprime le message. Pour ta saisie, le plus simple, dans ta structure actuel (qu'il faut corriger) serait d'utiliser les méthodes de symfony de gestion des liaisons multiples par plusieurs boite, c'est automatiquement généré si ton schéma est correcte. Si non, il faut faire un form non relié à doctrine pour l'édition du message. Le retour et l'envoi des informations se faisant dans le contrôleur. Il faudra probablement écrire un validateur pour la vérification de l'adresse (des adresses) du(des) destinataire(s).
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
||
|
00
|
|
|
#3 |
|
Invité de passage
![]() Étudiant Inscription : avril 2011 Messages : 3 ![]() |
Merci pour cette réponse des plus complète!
Cependant, la date limite de fin de développement (immuable) approche à grands pas et je pense ne pas avoir le temps pour repartir sur de meilleures bases. Ne me serait-il pas possible de m'en sortir avec un mergeForm, embedForm ou encore embedRelation? Encore une fois merci! |
|
|
00
|
|
|
#4 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Je ne sais pas ce que tu cherches réellement a faire, donc je ne peux donner une solution satisfaisante.
Mes embedForm (pas mergeForm) sont une des possibilités, mais est-ce la bonne ? Avec une relation n-n bien définie, l'idéal est les doubles listes (sélectionné (lié) et non sélectionné). Mais ce n'est peut-être pas conforme à ton cahier des charges. Un mauvais modèle peut être une handicap dans le développement.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Étudiant Inscription : avril 2011 Messages : 3 ![]() |
Bon je vais récupérer la valeurs du champ destinataire à la validation du formulaire dans le action.class.php et remplir la table "à la main" ce sera plus simple pour ce projet vu le manque de temps.
Mais je m'assurerai la prochaine fois d'avoir un model de bdd et un schéma nickel avant de commencer le développement. Encore un grand merci pour ton aide! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com