doctrine2 - Symfony Doctrine ManyToMany add custom join field -


i have 2 entites : cart , item, relation configured manytomany because cart can have multiple items, , items can in multiple carts.

so have link table item_cart item_id , cart_id.

how can work quantity ? example if need add 800 items id = 2 cart id = 5 ?

is possible add field quantity in link table ?

thanks help.

you can making relationship entity. entity called cartitem or cartitemlink.

the association changes manytomany between cart , item 2 associations manytoone , onetomany:

cart - manytoone - cartitem - onetomany - item

now can add additional fields cartitem, $quantity field mentioned in question.

so this:

the cartitem:

class cartitem {      /** many-to-one bidirectional, owning side      * @var cart      * @orm\manytoone(targetentity="application\entity\cart", inversedby="cartitems")      * @orm\joincolumn(name="cart_id", referencedcolumnname="id")      */     private $cart;      /** many-to-one bidirectional, owning side      * @var item      * @orm\manytoone(targetentity="application\entity\item", inversedby="cartitems")      * @orm\joincolumn(name="item_id", referencedcolumnname="id")      */     private $item;      /**      * @var int      * @orm\column(type="integer", nullable=false)      */     private $quantity;      //.. setters + getters } 

the cart:

class cart {      /**      * @var integer      * @orm\id      * @orm\column(type="integer", nullable=false)      * @orm\generatedvalue(strategy="auto")      */     private $id;      /** one-to-many bidirectional, inverse side      * @var arraycollection      * @orm\onetomany(targetentity="application\entity\cartitem", mappedby="cart")      */     private $cartitems;      //.. setters + getters } 

the item:

class item {      /**      * @var integer      * @orm\id      * @orm\column(type="integer", nullable=false)      * @orm\generatedvalue(strategy="auto")      */     private $id;      /** one-to-many bidirectional, inverse side      * @var arraycollection      * @orm\onetomany(targetentity="application\entity\cartitem", mappedby="item")      */     private $cartitems;      //.. setters + getters } 

i didn't add id cartitem because can have either composite key ($item_id + $cart_id) or natural key , leave you.

don't forget initialize $cartitems arraycollection inside constructor of item , cart.


Comments

Popular posts from this blog

ruby - Trying to change last to "x"s to 23 -

jquery - Clone last and append item to closest class -

css - Can I use the :after pseudo-element on an input field? -