2012-10-03 25 views
5

Hãy nói rằng tôi có hai thực thể:Symfony 2.1 Sonata quản Bundle OneToMany

1. Sản phẩm

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

My ProductAdmin:

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

Tôi không thể nhận được catalogs để hoạt động (chẳng hạn như user => nhóm liên kết tại đây: http://demo.sonata-project.org/admin/sonata/user/user/create thông tin đăng nhập: admin/admin). tôi chỉ nhận được lỗi: No entity manager defined for class Doctrine\Common\Collections\ArrayCollection

Trả lời

10

Hãy thử với nhiều tùy chọn:

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

lý do tại sao downvote? điều này làm việc cho tôi. – gpilotino

+0

Cảm ơn bạn rất nhiều! – Mz1907

0

Bạn cần phải thêm một lớp quản lý riêng biệt cho Entity Catalogue.

Bạn chỉ có thể sử dụng Danh mục nếu bạn có CatalogAdmin giống với ProductAdmin. Sau đó, bạn có thể sử dụng kiểu mẫu sonata_type_model hoặc sonata_type_model_list.