doctrine2 - ZF2 doctrine OneToMany annotation form -


i have following entities:

  1. user

    /**  * users  *  * @orm\table(name="users")  * @orm\entity(repositoryclass="users\entity\repository\usersrepository")  * @annotation\name("user")  * @annotation\hydrator("zend\stdlib\hydrator\classmethods")  */ class user {    /**      * @var string      *      * @orm\column(name="name", type="string", length=100, nullable=false)      * @annotation\filter({"name":"stringtrim"})      * @annotation\validator({"name":"stringlength", "options":{"min":2, "max":100}})      * @annotation\attributes({"type":"text","class":"form-control"})      * @annotation\options({"label":"full name:"})      */     private $name;  /**      * @var user\entity\useritem      *      * @orm\onetomany(targetentity="user\entity\useritem", mappedby="user")      * @annotation\exclude()      */     private $items;      /**      * @var integer      *      * @orm\column(name="id", type="integer")      * @orm\id      * @orm\generatedvalue(strategy="auto")      * @annotation\exclude()      */     private $id;  public function __construct()     {             $this->vessels = new arraycollection();     }   public function setname($name)     {         $this->name = $name;          return $this;     }      public function getname()     {         return $this->name;     }   public function getid()     {         return $this->id;     }  public function getitems()     {             return $this->items     }      public function setitems($items)     {             $this->itemr = $items;             return $this;     } 
  2. item

     /**  * items  * @orm\entity  * @orm\table(name="items")  * @orm\entity(repositoryclass="user\entity\repository\itemsrepository")  * @annotation\name("item")  * @annotation\hydrator("zend\stdlib\hydrator\classmethods")  */   class item    {     /**      * @var string      *      * @orm\column(name="name", type="string", length=100, nullable=false)      * @annotation\filter({"name":"stringtrim"})      * @annotation\validator({"name":"stringlength", "options":{"min":2, "max":100}})      * @annotation\attributes({"type":"text","class":"form-control"})      * @annotation\options({"label":"name:"})      */      private $name;      /**      * @var integer      *      * @orm\column(name="id", type="integer")      * @orm\id      * @orm\generatedvalue(strategy="auto")      * @annotation\exclude()      */      private $id; 
  3. and entity keepeing relation between 2 useritem

     /**   * useritem   *   * @orm\table(name="users_items")   * @orm\entity(repositoryclass="user\entity\repository\useritemsrepository")   * @annotation\name("user_item")   * @annotation\hydrator("zend\stdlib\hydrator\classmethods")   */  class useritem{          /**       * @var users\entity\user       *       * @orm\manytoone(targetentity="users\entity\user", inversedby="items")       * @orm\joincolumn(name="user_id", referencedcolumnname="id")       * @annotation\exclude()       */      private $user;       /**       * @var user\entity\item       *       * @orm\manytoone(targetentity="user\entity\item", inversedby="users")       * @orm\joincolumn(name="item_id", referencedcolumnname="id")       * @annotation\type("doctrinemodule\form\element\objectselect")       */      private $item;       /**       * @var integer       *       * @orm\column(name="id", type="integer")       * @orm\id       * @orm\generatedvalue(strategy="auto")       * @annotation\exclude()       */      private $id; 

with entities can create , edit user , item. form generated annotations. question how can generate form assigning items user. preferably select field(s) multiple selection. , after submitting doctrine should save relations.

i wrote form represent items select:

class itemsform extends form {     public function __construct($entitymanager, $name = null)     {         parent::__construct('items');         $this->setattribute('method', 'post');         $this->add(array(             'type' => 'doctrinemodule\form\element\objectselect',             'name' => 'items',             'attributes' => array(                 'id' => 'selectitems',                 'multiple' => true,                 'data-placeholder' => 'items'             ),             'options' => array(                 'object_manager' => $entitymanager,                 'target_class' => 'user\entity\item',                 'property' => 'name',                 ),             )         );             } } 

and not know how preselect items user has assigned.

in select field in value must have id items. after submit can that

foreach($post['items'] $itemid) {     $useritem = new useritem();     $useritem->user = $this->getentitymanager()->getreference('user', $userid);     $useritem->item = $this->getentitymanager()->getreference('item', $itemid);     $this->getentitymanager()->save($useritem); } 

Comments

Popular posts from this blog

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

php - render data via PDO::FETCH_FUNC vs loop -

The canvas has been tainted by cross-origin data in chrome only -