|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : septembre 2009 Messages : 22 ![]() |
Bonjour,
Je suis confronté à un problème lié au backend (admin generator). A priori, j'ai une relation 1-n de chaque côté de la table de jointure (AuteurHasBd). Mon schema.yml ressemble à cela : Code :
Je me suis donc renseigné sur les formulaires imbriqués avec Symfony, mais je ne vois pas comment faire cela... Auriez-vous une idée ? Merci, d'avance. |
||
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Développeur Web Inscription : mars 2005 Messages : 769 ![]() |
Tu as donc une relation n-n entre Auteur et Bd. C'est cette relation n-n qu'il faut déclarer dans ton schema.yml plutôt que les deux relations 1-n de part et d'autre de la table d'association :
Doctrine : relations n-n en YAML Dès lors, si tu déclares cela dans Auteur avec comme nom de relation Bds, tu pourras utiliser $form->embedRelation('Bds') dans ton formulaire Auteur (et récriproquement). |
|
|
00
|
|
|
#3 | ||
|
Invité régulier
![]() Inscription : septembre 2009 Messages : 22 ![]() |
Merci d'avoir pris la peine de me répondre.
Néanmoins, je ne suis pas sur d'avoir bien compris. Cela donnerait quelque chose comme cela ? Code :
|
||
|
|
00
|
|
|
#4 | ||
|
Membre chevronné
![]() Développeur Web Inscription : mars 2005 Messages : 769 ![]() |
Ca ressemble à ça à quelques détails près. Le plus important est que ta table AuteurHasBd a 3 clés étrangères et non deux comme je le croyais. Je n'ai pas essayé d'utiliser les YAML de Doctrine dans le cas d'une table d'association à 3 clés donc... faut voir.
Cela dit, tel que je comprends ton schéma, cette table n'a pas besoin de 3 clés, non ? Un auteur a 1-n bds, une bédé a 1-n auteurs, chaque bd peut éventuellement faire partie d'une série. On aurait donc une relation n-n auteurs <-> bds et une relation 1-n bd <-> série. Si c'est bien le cas, en corrigeant le schéma et en simplifiant le tout grâce aux convections Doctrine, ça donne quelque chose du type : Code :
Les conventions utilisées pour alléger le fichier et faciliter la lecture sont : columns: - on utilise les valeurs par défaut implicites (autoincrement false, etc....) - table avec une clé primaire unique : la colonne s'appelle 'id' - table avec une clé étrangère vers la table MaTable : la colonne s'appelle 'ma_table_id' relations: (relations directes telles que la relation Bd <-> Serie) - nom de la relation = nom de la table visée - par défaut, si la table visée s'appelle MaTable, la colonne qui sera utilisée par Doctrine sera la colonne ma_table_id NB : par défaut, les fk sont en mode 'on delete: restrict' et 'on update: restrict'. Si tu veux utiliser des cascades, n'oublie pas de le signaler dans ton schéma. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com