php - Additional fields in ORM-ManyToMany relation -


i have following tables data: users , groups. in database relation between 2 entities manytomany, because many users can in many groups , many groups can have many users. simple. created code , works:

user entity:

/**  * @orm\entity  * @orm\table(name="users")  */ class user extends baseuser {     /**      * @orm\id      * @orm\column(type="integer")      * @orm\generatedvalue(strategy="auto")      */     protected $id;      /**      * @orm\manytomany(targetentity="group", inversedby="users")      * @orm\jointable(name="users_in_groups")      */     protected $groups; } 

group entity:

/**  * @orm\entity  * @orm\table(name="groups")  */ class group {     /**      * @orm\id      * @orm\column(type="integer")      * @orm\generatedvalue(strategy="auto")      */     protected $id;      /**      * @orm\manytomany(targetentity="user", mappedby="groups")      */     protected $users; } 

symfony created 3 tables: users, groups , users_in_groups. work great, want set different permissions different users in each group. example: user1 admin in group1 , standard member in group2, etc. best solution insert new field users_in_groups table created @orm\jointable function , don't know how can that. know simple solution problem?

the simpliest way i've found use third entity

here's how work in case

user entity :

/**  * @orm\entity  * @orm\table(name="users")  */ class user extends baseuser {     /**      * @orm\id      * @orm\column(type="integer")      * @orm\generatedvalue(strategy="auto")      */     protected $id;     /**      * @orm\onetomany(targetentity="usergroup", mappedby="user")      * */     protected $usergroup; } 

group entity :

/**  * @orm\entity  * @orm\table(name="groups")  */ class group {     /**      * @orm\id      * @orm\column(type="integer")      * @orm\generatedvalue(strategy="auto")      */     protected $id;      /**       * @orm\onetomany(targetentity="usergroup" , mappedby="group"})      * */     protected $usergroup; } 

usergroup entity:

/**  * @orm\entity  * @orm\table(name="user_group")  */ class usergroup {      /**      * @orm\id      * @orm\column(type="integer")      * @orm\generatedvalue(strategy="auto")      *      * @var integer $id      */     protected $id;       /**      * @orm\manytoone(targetentity="user", inversedby="usergroup")      * @orm\joincolumn(name="user_id", referencedcolumnname="id")      * */     protected $user;      /**      * @orm\manytoone(targetentity="group", inversedby="usergroup")      * @orm\joincolumn(name="group_id", referencedcolumnname="id")      * */     protected $group;       // additional fields, getter, setters, _construct, __tostring    } 

Comments

Popular posts from this blog

node.js - Mongoose: Cast to ObjectId failed for value on newly created object after setting the value -

[C++][SFML 2.2] Strange Performance Issues - Moving Mouse Lowers CPU Usage -

ios - Possible to get UIButton sizeThatFits to work? -