2012-10-03 4 views
5

Lassen Sie uns sagen, ich habe zwei Entitäten:Symfony 2.1 Sonata Admin Bundle OneToMany

1. Produkt

/** 
* @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; 
} 

Mein ProductAdmin:

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

Ich kann catalogs nicht funktionieren (etwas wie user => Gruppenassoziation hier: http://demo.sonata-project.org/admin/sonata/user/user/create credentials: admin/admin). ich nur Fehlermeldungen erhalten: No entity manager defined for class Doctrine\Common\Collections\ArrayCollection

Antwort

10

Versuchen mit mehrere Option:

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

Warum runter? Das funktioniert für mich. – gpilotino

+0

Vielen Dank! – Mz1907

0

Sie haben eine separate Admin-Klasse für den Katalog Entity hinzuzufügen.

Sie können den Katalog nur verwenden, wenn CatalogAdmin dasselbe ist wie ProductAdmin. Danach können Sie die Formtypen sonata_type_model oder sonata_type_model_list verwenden.