Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/04/2013, 14:48
Avatar de fhederico
fhederico
 
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 14 años, 8 meses
Puntos: 23
Respuesta: symfony2 build form entity oneToMany

Hola,

Si estas cargando esto en el controller "new Categoria", estas creando un nuevo objeto de esto, por lo tanto viene vacio, es logico que no te deje nada seleccionado.

Si ya tienes datos insertados en la Base de Datos, debes rescatarlos para que queden "cargados" en tu objeto Categoria. Por ejemplo

Inserte una carrera en la Base, en mi entidad tengo 3 campos

- Id (Autonumerico)
- Nombre
- Año

Teniendo el ID busco la carrera

Código HTML:
Ver original
  1. $em = $this->getDoctrine()->getManager();
  2.  
  3. //Find existe por defecto
  4. $entity = $em->getRepository('ANPruebaBundle:Carrera')->find($id);
  5.  
  6.         if (!$entity) {
  7.             throw $this->createNotFoundException('No encontro nada.');
  8.         }
  9.  
  10. //Crea el formulario con los datos de la entidad
  11.         $form = $this->createForm(new CarreraType(), $entity);


Entonces, si la encontro, te retornara un objeto entidad con todos los datos cargados, me entiendes?

A y lo otro, no ocupes guiones bajos ya que symfony los reemplaza o mejor dicho los quita u omite.

Por ultimo, viendo tus relaciones deberian estar asi


Código HTML:
Ver original
  1. //Producto
  2.  
  3.     /**
  4.      * @ORM\ManyToOne(targetEntity="Categoria", inversedBy="producto")
  5.      * @ORM\JoinColumn(name="categoriaid", referencedColumnName="idcategoria")
  6.      */
  7.  
  8.     protected $categoriaid; //Idealmente ocupar el mismo nombre con que creas el campo (name)


Código HTML:
Ver original
  1. //Categoria
  2.  
  3.  
  4.     /**
  5.      * @ORM\OneToMany(targetEntity="Producto", mappedBy="categoriaid")
  6.      */
  7.     protected $producto;


Tanto "inversedBy" como "mappedBy" hacen referencia a la variable definida y no al nombre del campo, EJ:

protected $categoriaid

protected $categoriaid

^^

Última edición por fhederico; 19/04/2013 a las 15:01