2012-10-03 11 views
5

Diciamo che ho due entità:Symfony 2.1 Sonata Admin Bundle OneToMany

1. Prodotto

/** 
* @ORM\Table() 
* @ORM\Entity 
*/ 
class Product 
{ 
    /* 
    * @ORM\Column(name="name", type="string", length=255) 
    */ 
    private $name; 

    /** 
    * @ORM\OneToMany(targetEntity="Catalog", mappedBy="product") 
    */ 
    public $catalogs; 

    public function __construct() 
    { 
     $this->catalogs = new \Doctrine\Common\Collections\ArrayCollection(); 
    } 
} 

2.Catalog

/** 
* 
* @ORM\Table() 
* @ORM\Entity 
*/ 
class Catalog 
{ 
    /** 
    * @ORM\ManyToOne(targetEntity="Product", inversedBy="catalogs") 
    */ 
    private $product; 

    /** 
    * @ORM\Column(name="name", type="string", length=255) 
    */ 
    private $name; 
} 

mio ProductAdmin:

class ProductAdmin extends Admin 
{ 
    protected function configureFormFields(FormMapper $formMapper) 
    { 
     $formMapper 
     ->add('name') 
     ->add('catalogs', 'sonata_type_model') 
     ; 
    } 
} 

Non riesco a far funzionare catalogs (qualcosa come utente => associazione gruppi qui: http://demo.sonata-project.org/admin/sonata/user/user/create credenziali: admin/admin). Ho solo ottenere gli errori: No entity manager defined for class Doctrine\Common\Collections\ArrayCollection

risposta

10

Provare con l'opzione multipla:

protected function configureFormFields(FormMapper $formMapper) 
    { 
     $formMapper 
     ->add('name') 
     ->add('catalogs', 'sonata_type_model', array('multiple' => true) 
     ; 
    } 
+0

why downvote? questo funziona per me. – gpilotino

+0

Grazie mille! – Mz1907

0

si deve aggiungere una classe Admin separato per l'Ente catalogo.

È possibile utilizzare il catalogo solo se si dispone di un oggetto CatalogAdmin uguale a ProductAdmin. Successivamente è possibile utilizzare i tipi di forma sonata_type_model o sonata_type_model_list.