2012-10-03 20 views
5

चलो कहते हैं कि मैं दो संस्थाओं करते हैं:Symfony 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 प्रमाण-पत्र: व्यवस्थापक/व्यवस्थापक)। मैं केवल त्रुटियों मिलती है: 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

क्यों डाउनवोट? यह मेरे लिए काम करता है। – gpilotino

+0

आपको बहुत बहुत धन्यवाद! – Mz1907

0

आप सूची इकाई के लिए एक अलग व्यवस्थापक वर्ग को जोड़ने के लिए है।

यदि आप ProductAdmin के रूप में एक CatalogAdmin समान हैं तो आप केवल कैटलॉग का उपयोग कर सकते हैं। उसके बाद आप sonata_type_model या sonata_type_model_list रूपों का उपयोग कर सकते हैं।