IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Jirka Veselý:23.8.2017 9:20

Ahojte, mám 2 entity. User a Klan. Tyto entity jsem spojil vazbou Many To Many. Avšak bych potřeboval vědět, jaké postavení má každý uživatel v daném klanu, proto jsem do join tabulky přidal kolonku "status". Co jsem nějak tak vygooglil, tak že to jde řešit stylem vytvoření 3. entity, ale to mi příjde takové moc zbytečné. ¨

class Clan extends BaseEntity
{
        /**
         * @ORM\ManyToMany(targetEntity="User", mappedBy="clans")
         */
        public $members;
}

a

class User extends BaseEntity
{
        /**
         * @ORM\ManyToMany(targetEntity="Clan", inversedBy="members")
         * @ORM\JoinTable(name="user_clan")
         */
        public $clans;
}

Chci se zeptat, jesli by nešla udělat vazba Many-To-Many s jednou column navíc a ještě, jak bych se na to column pak doptal. Díky moc.

 
Odpovědět
23.8.2017 9:20
Avatar
d4rkw34v3r
Tvůrce
Avatar
Odpovídá na Jirka Veselý
d4rkw34v3r:23.8.2017 9:39

Ahoj, jediný správný řešení je to opravdu rozbít na 3 Entity. Další možností by mohlo být použít čisté SQL a výsledek pak ručně mapovat na entity, ale lepší bude to udělat pomocí 3 entit, protože pokud do vazby potřebuješ další field, tak už to není čistá vazba, ale Entita.

 
Nahoru Odpovědět
23.8.2017 9:39
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.