2012-10-03 72 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。

相关问题