2012-10-03 6 views
5

의 내가 두 엔티티 있다고 가정 해 봅시다 :심포니 2.1 소나타 관리 번들 OneToMany는

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이 작동하도록 할 수 없습니다 (사용자 => 여기의 그룹 연결 : http://demo.sonata-project.org/admin/sonata/user/user/create 자격증 명 : 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

당신은 카탈로그 엔터티에 대한 별도의 관리 클래스를 추가해야합니다.

CatalogAdmin이 ProductAdmin과 동일한 경우에만 카탈로그를 사용할 수 있습니다. 그런 다음 sonata_type_model 또는 sonata_type_model_list 양식 유형을 사용할 수 있습니다.

관련 문제