假设我有两个实体:
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
/**
*
* @ORM\Table()
* @ORM\Entity
*/
class Catalog
{
/**
* @ORM\ManyToOne(targetEntity="Product", inversedBy="catalogs")
*/
private $product;
/**
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
}
我的ProductAdmin
:
class ProductAdmin extends Admin
{
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('name')
->add('catalogs', 'sonata_type_model')
;
}
}
我无法让catalogs
正常工作(例如user => groups groups):http://demo.sonata-project.org/admin/sonata/user/user/create凭据:admin / admin)。
我只收到错误:No entity manager defined for class Doctrine\Common\Collections\ArrayCollection
答案 0 :(得分:10)
尝试使用多个选项:
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('name')
->add('catalogs', 'sonata_type_model', array('multiple' => true)
;
}
答案 1 :(得分:0)
您必须为目录实体添加单独的Admin类。
如果您的CatalogAdmin与ProductAdmin相同,则只能使用目录。 之后,您可以使用sonata_type_model或sonata_type_model_list formtypes。