Ik zit even wat te testen in Symfony maar ik kom er even niet meer uit
Wat ik wil is het volgende: Een image tabel met diverse informatie van de image. Hierin zit ook een koppeling naar de user (van de image) met een many to one relatie (user kan meerdere images hebben).
Vervolgens heb ik nog een aparte tabel met de categorieën, echter is dit een many to many: een image kan meerdere categorieën hebben, en een categorie mag meerdere images hebben.
In feite zeg ik dan ook in de category entity dat hij een relatie heeft met de Image, inclusief jointable image_categories.
Nu genereer ik de entities en lijkt mij alles best, maar de koppeltabel wordt niet gevuld. Moet ik ook echt een entity gaan aanmaken met wat logica zodat hij dat gaat vullen? Ik ben gewoon nog niet zover in de wondere wereld van een ORM maar ik was van mening dat 'alles' nu wel goed was om ook daadwerkelijk data te inserten..
Image entity:
Category:

Wat ik wil is het volgende: Een image tabel met diverse informatie van de image. Hierin zit ook een koppeling naar de user (van de image) met een many to one relatie (user kan meerdere images hebben).
Vervolgens heb ik nog een aparte tabel met de categorieën, echter is dit een many to many: een image kan meerdere categorieën hebben, en een categorie mag meerdere images hebben.
In feite zeg ik dan ook in de category entity dat hij een relatie heeft met de Image, inclusief jointable image_categories.
Nu genereer ik de entities en lijkt mij alles best, maar de koppeltabel wordt niet gevuld. Moet ik ook echt een entity gaan aanmaken met wat logica zodat hij dat gaat vullen? Ik ben gewoon nog niet zover in de wondere wereld van een ORM maar ik was van mening dat 'alles' nu wel goed was om ook daadwerkelijk data te inserten..
Image entity:
PHP:
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
| <?php namespace CoreBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** * Attribute * * @ORM\Table(name="images") * @ORM\Entity */ class Image { /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="IDENTITY") */ private $id; /** * @var string * * @ORM\Column(name="name", type="string", length=255, nullable=false) */ private $name; /** * @var string * * @ORM\Column(name="url", type="string", length=255, nullable=false) */ private $url; /** * @ORM\ManyToOne(targetEntity="User", inversedBy="images") * @ORM\JoinColumn(name="user_id", referencedColumnName="id") */ protected $user; /** * @ORM\ManyToMany(targetEntity="Category", mappedBy="category") */ protected $category; } |
Category:
PHP:
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
| <?php namespace CoreBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** * Attribute * * @ORM\Table(name="categories") * @ORM\Entity */ class Category { /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="IDENTITY") */ private $id; /** * @var string * * @ORM\Column(name="name", type="string", length=255, nullable=false) */ private $name; /** * @ORM\ManyToMany(targetEntity="Image", inversedBy="category", fetch="EAGER") * @ORM\JoinTable(name="image_categories") */ protected $images; } |