Bonjour tout le monde,
Je suis en train d'essayer de migrer un projet en utilisant Doctrine2, mais j'ai quelques problèmes pour la gestion des relations OneToMany et ManyToOne.
Le problème, c'est que j'ai une base de la sorte :
Mais mon problème, c'est que pour mon entité Episode quel types de relation dois-je utiliser, car je n'arrive pas à trop comprendre car je penses utiliser la relation OneToMany mais ne je suis pas sur que ça soit celle qui soit la plus adapter à mon cas (plusieurs titres possible pour un même épisode).Table : episodes_series
id
sid #Serie ID
num #Numéro de l'épisode
Table : episodes_titre
eid #Episode id
lang
titre
Car pour le moment j'était parti sur une relation OneToMany (1-N) mais je penses avoir fait des erreurs au niveau des paramètres. En effet, que dois-je mettre dans le champs mappedBy car je ne vois pas trop, là j'ai mis id mais je penses pas que ça soit la bonne solution.
En effet, Doctrine génère les requêtes suivantes :
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 /** * @ORM\Entity * @ORM\Table(name="public.episodes_series") */ class Episode { /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO") */ protected $id; /** * @ORM\Column(type="integer") */ protected $num; /** * @ORM\OneToMany(targetEntity="EpisodeTitle",mappedBy="eid") * @ORM\JoinTable(name="episodes_titles", * joinColumns={@ORM\JoinColumn(name="eid", referencedColumnName="id")}, * inverseJoinColumns={@ORM\JoinColumn(name="id", referencedColumnName="eid")}) */ protected $titre; } /** * @ORM\Entity * @ORM\Table(name="public.episodes_titre") */ class EpisodeTitle { /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO") */ protected $id; /** * @ORM\Column(type="string") */ protected $titre;
Hors mon problème c'est d'où sort ce champs eid_id, pourquoi rajoute-t-il _id ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT t0.id AS id1, t0.num AS num2 FROM public.episodes_series t0 WHERE t0.id = ? SELECT t0.id AS id1, t0.titre AS titre2, t0.lang AS lang3, t0.eid_id AS eid_id4 FROM public.episodes_titre t0 WHERE t0.eid_id = ?
Merci par avance et bonne soirée![]()
Partager