2012-10-03 32 views
5

Digamos que tengo dos entidades:Symfony 2.1 Sonata administración Bundle OneToMany

1. Producto

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

Mi ProductAdmin:

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

No puedo conseguir que catalogs funcione (algo así como usuario => asociación de grupos aquí: http://demo.sonata-project.org/admin/sonata/user/user/create credenciales: admin/admin). solo me dan errores: No entity manager defined for class Doctrine\Common\Collections\ArrayCollection

Respuesta

10

intento con opción múltiple:

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

¿por qué downvote? esto funciona para mi – gpilotino

+0

¡Muchas gracias! – Mz1907

0

hay que añadir una clase de administración independiente para la entidad de catálogo.

Solo puede usar el Catálogo si tiene un CatalogAdmin igual que el ProductAdmin. Después de eso, puede usar los tipos de modelo sonata_type_modelo o sonata_type_model_list.

Cuestiones relacionadas