many to many - Symfony + Sonata, OneToMany Relation -


could give me hand please?

i need implement list of books , readers using sonata admin bundle.

the problem empty column of read books each reader in list.

forein keys written okay db.

please see code:

readersadmin class

protected function configureformfields(formmapper $formmapper) {     $formmapper         ->add('name')         ->add('book',             'entity',             array(                 'class'    => 'appbundle:books',                 'property' => 'name',                 'multiple' => true,                 'expanded' => true             )         ); }  /**  * @param \sonata\adminbundle\show\showmapper $showmapper  *  * @return void  */ protected function configureshowfield(showmapper $showmapper) {     $showmapper         ->add('name')         ->add('book')     ; }  /**  * @param \sonata\adminbundle\datagrid\listmapper $listmapper  *  * @return void  */ protected function configurelistfields(listmapper $listmapper) {     $listmapper         ->add('name')         ->add('book')         ->add('_action', 'input', array(             'actions' => array(                 'show' => array(),                 'edit' => array(),                 'delete' => array(),             )         ))     ; } 

readersrelations entity

class readersrelations 

{ /** * @var integer * * @orm\column(name="id", type="integer") * @orm\id * @orm\generatedvalue(strategy="auto") */ private $id;

/**  * @var books  *  * @orm\manytoone(targetentity="\appbundle\entity\books", inversedby="readersrelations")  * @orm\joincolumn(name="book_id", referencedcolumnname="id")  */ private $book;  /**  * @var readers  *  * @orm\manytoone(targetentity="\appbundle\entity\readers", inversedby="readersrelations")  * @orm\joincolumn(name="reader_id", referencedcolumnname="id")  */ private $reader; 

books entity

    <?php  namespace appbundle\entity;  use doctrine\orm\mapping orm; use doctrine\common\collections\arraycollection; /**  * books  *  * @orm\entity  * @orm\table(name="books")  */ class books {     /**      * @var integer      *      * @orm\column(name="id", type="integer")      * @orm\id      * @orm\generatedvalue(strategy="auto")      *      */     private $id;      /**      * @var string      *      * @orm\column(name="name", type="string", length=255)      */     private $name;      /**      * @var string      *      * @orm\column(name="author", type="string", length=255)      *      */     private $author;      /**      * @var readersrelations      *      * @orm\onetomany(targetentity="\appbundle\entity\readersrelations" , mappedby="books" , cascade={"all"})      */     private $readers;      public function __tostring()     {         return $this->name;     }      /**      * id      *      * @return integer       */     public function getid()     {         return $this->id;     }      /**      * set name      *      * @param string $name      * @return books      */     public function setname($name)     {         $this->name = $name;          return $this;     }      /**      * name      *      * @return string       */     public function getname()     {         return $this->name;     }      /**      * set author      *      * @param string $author      * @return books      */     public function setauthor($author)     {         $this->author = $author;          return $this;     }      /**      * author      *      * @return string       */     public function getauthor()     {         return $this->author;     } } 

readers entity

    <?php  namespace appbundle\entity;  use doctrine\orm\mapping orm; use doctrine\common\collections\arraycollection; use appbundle\entity\readersrelations; /**  * readers  *  * @orm\entity  * @orm\table(name="readers")  */ class readers {     /**      * @var integer      *      * @orm\column(name="id", type="integer")      * @orm\id      * @orm\generatedvalue(strategy="auto")     *      */     private $id;      /**      * @var string      *      * @orm\column(name="name", type="string", length=255)      *      */     private $name;      /**      * @var readersrelations      *      * @orm\onetomany(targetentity="\appbundle\entity\readersrelations" , mappedby="readers" , cascade={"all"})      */     private $book;      private $books;      public function __construct()     {         $this->book = new arraycollection();         $this->books = new arraycollection();      }      public function __tostring()     {         return $this->name;     }      public function getbook()     {         $books = new arraycollection();          foreach($books $p)         {             $books[] = $p->getbook();         }          return $books;     }      public function setbook($books)     {         foreach($books $p)         {             $po = new readersrelations();              $po->setbook($p);             $po->setreader($this);              $this->addpo($po);         }      }      public function addpo($productorder)     {         $this->book[] = $productorder;     }      public function removepo($productorder)     {         return $this->book->removeelement($productorder);     } class readers {     /**      * @var integer      *      * @orm\column(name="id", type="integer")      * @orm\id      * @orm\generatedvalue(strategy="auto")     *      */     private $id;      /**      * @var string      *      * @orm\column(name="name", type="string", length=255)      *      */     private $name;      /**      * @var readersrelations      *      * @orm\onetomany(targetentity="\appbundle\entity\readersrelations" , mappedby="readers" , cascade={"all"})      */     private $book;      private $books;       public function __construct()     {         $this->book = new arraycollection();         $this->books = new arraycollection();      }      public function __tostring()     {         return $this->name;     }      public function getbook()     {         $books = new arraycollection();          foreach($books $p)         {             $books[] = $p->getbook();         }          return $books;     }      public function setbook($books)     {         foreach($books $p)         {             $po = new readersrelations();              $po->setbook($p);             $po->setreader($this);              $this->addpo($po);         }      }      public function addpo($productorder)     {         $this->book[] = $productorder;     } /**  * id  *  * @return integer   */ public function getid() {     return $this->id; }  /**  * set name  *  * @param string $name  * @return readers  */ public function setname($name) {     $this->name = $name;      return $this; }  /**  * name  *  * @return string   */ public function getname() {     return $this->name; } 

}

so, have problem store data using relationship ? or juste data in list ?

if it's save data, try implement sonata type collection or sonata type model field types register new related entries.

then, if have problems, check if entities setters have missing actions.


Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -