2012-10-03 19 views
5

en İki varlık var diyelim:Symfony'nin 2.1 Sonata Yönetici Paketi OneToMany

1. Ürün

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

Benim ProductAdmin:

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

Çalışmak için catalogs elde edemiyorum (kullanıcı => gruplar ilişkisi gibi bir şey burada: http://demo.sonata-project.org/admin/sonata/user/user/create kimlik bilgileri: admin/admin). Sadece hataları alıyorum: No entity manager defined for class Doctrine\Common\Collections\ArrayCollection

cevap

10

çoklu seçeneği ile deneyin:

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

neden downvote? Bu benim için çalışıyor. – gpilotino

+0

Çok teşekkür ederim! – Mz1907

0

Sen Katalog biriminin ayrı Yönetici sınıf eklemek zorunda.

Yalnızca CatalogAdmin'in ProductAdmin ile aynı olması durumunda Kataloğu kullanabilirsiniz. Bundan sonra sonata_type_model veya sonata_type_model_list formtypes kullanabilirsiniz.

İlgili konular