Autor | Zpráva | ||
---|---|---|---|
aDAm Profil |
#1 · Zasláno: 4. 7. 2013, 12:39:11
Zdravím,
lze nějak v doctrině definovat relaci mezi tabulkami s tím že tam zadám i nějakou podmínku? Např. mám entitu USER a entitu MEDIA. V entitě MEDIA jsou uloženy obrázky a je tam i sloupec TYPE kde je definováno že se soubor je avatar, portofilo_foto, atd. A v entitě USER chci přidat prvek s vazbou na entitu MEDIA ale aby to zahrnovalo jen vybrané záznamy typu AVATAR Ve zkratce jedno uložiště kde jsou soubory a mají příznak jakého jsou typu (avatar, fotka, dokument) a mít možnost mít entitu jen daného typu. |
||
ShiraNai7 Profil |
#2 · Zasláno: 4. 7. 2013, 14:48:32
Pokud to chceš rozlišit dle typu v relaci, použil bych single table inheritance pro vytvoření potomků entity MEDIA (AVATAR extends MEDIA, ...) Relaci bys tedy specifikoval přímo na konkrétní "subentitu" a zbytek práce nechal na doctrine (záznamy si rozliší automaticky dle daného @DiscriminatorColumn).
|
||
aDAm Profil |
No tuhle stranku o inheritaci jsem našel ale nepřišel jsem na to jak se tam definuje který column to definuje tedy v mém případě "media_type"
/** * @Entity * @InheritanceType("SINGLE_TABLE") * @DiscriminatorColumn(name="discr", type="string") * @DiscriminatorMap({"avatar" = "\Modely\Entity\Avatar", "foto" = "\Modely\Entity\Foto"}) */ class Media { // ... } Edit: ale tipuju že to je zadefinováno v tom DiscriminatorColumn že? tedy bych měl mít: @DiscriminatorColumn(name="type", type="string") |
||
ShiraNai7 Profil |
#4 · Zasláno: 4. 7. 2013, 16:54:56
/** * @Entity * @InheritanceType("SINGLE_TABLE") * @DiscriminatorColumn(name="media_type", type="string") * @DiscriminatorMap({"avatar" = "Modely\Entity\Avatar", "foto" = "Modely\Entity\Foto"}) */ + nikde v cestách ke třídě entity se nepíše počáteční zpětné lomítko |
||
Časová prodleva: 11 let
|
0