2012-10-03 74 views
5

比方說,我有兩個實體:Symfony的2.1索納塔管理員捆綁一對多

1.產品

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

​​

ProductAdmin

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

我無法獲得catalogs正在工作(類似於user => groups association here:http://demo.sonata-project.org/admin/sonata/user/user/create credentials:admin/admin)。 我只得到錯誤:No entity manager defined for class Doctrine\Common\Collections\ArrayCollection

回答

10

嘗試用多種選項:

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

爲什麼downvote?這對我有用。 – gpilotino

+0

非常感謝! – Mz1907

0

您必須添加一個單獨的管理類的目錄實體。

如果您具有與ProductAdmin相同的CatalogAdmin,則只能使用Catalog。 之後,您可以使用sonata_type_model或sonata_type_model_list formtypes。

相關問題