Bonjour à tous,
je développe un projet perso de gestion de catalogue d'oeuvres d'art et je bute sur un problème assez énervant.
Dans ce projet, je souhaite inclure une gestion des métadonnées. En clair, un utilisateur doit pouvoir définir des métadonnées sur une oeuvre ou un artiste.
Niveau base de données cela se traduit par une relation many to many de la manière suivante :
1 artiste peut avoir N métadonnées
1 même métadonnée peut etre appliquée sur plusieurs artistes
idem avec les oeuvres:
1 oeuvre peut avoir N métadonnées
1 même métadonnée peut etre appliquée sur plusieurs oeuvres
Jusque là pas de problème, j'y viens donc
Je ne sais pas comment définir ça en symfony.
Le message d'erreur que j'ai est le suivant lorsque je crée le modèle et que j'insère les fixtures :
Il semble que la relation many to many que j'ai définie ne le soit pas correctement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`airexpo`.`oeuvre`, CONSTRAINT `oeuvre_artiste_id_artiste_id` FOREIGN KEY (`artiste_id`) REFERENCES `artiste` (`id`))
La table de métadonnées est "metadata"
La table des artistes est "artiste"
La table des oeuvres est "oeuvre"
La table de relation entre métadonnées et artistes ou oeuvres est "defined_metadata"
Voici la définition de la classe DefinedMetadata dans le fichier schema.yml :
J'ai inclus le fichier schema.yml pour plus de précisions.
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 DefinedMetadata: actAs: Timestampable: ~ columns: metadata_id: type: integer oeuvre_id: type: integer artiste_id: type: integer relations: Artiste: class: Artiste local: artiste_id foreign: id refClass: DefinedMetadata Oeuvre: class: Oeuvre local: oeuvre_id foreign: id refClass: DefinedMetadata
Si quelqu'un a une idée...
Partager