Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/04/2013, 16:38
capemp
 
Fecha de Ingreso: julio-2006
Mensajes: 13
Antigüedad: 15 años, 2 meses
Puntos: 3
symfony2 build form entity oneToMany

Estoy aprendiendo a utilizar este framework pero me he topado con un problema que ya hace algunos días no he podido resolver:

Tengo 2 tablas en la BD: categoria con llave primaria "idcategoria" y producto con llave primaria ("idproducto" y llave forenea a la tabla categoria "categoria_idcategoria", tengo las entidades generades y un controlador con un editAction que es un formulario que almacena los datos del producto y la categoria a la que pertence.

Relacionaes en ORM yml

Entity: Producto
...
manyToOne:
categoria:
targetEntity: Categoria
inversedBy: productos
joinColumn:
name: categoria_idcategoria
referencedColumnName: idcategoria

Entity: Categoria
...
oneToMany:
productos:
targetEntity: Producto
mappedBy: categoria

Form/Type
ProductoType
public function buildForm(FormBuilderInterface $builder, array $options)
{
...

$builder->add('categoria_idcategoria', 'entity',
array('class' => 'SysCatalogoBundle:Categoria',

'property' => 'nombre',));

...
}

ProductoController

public function editAction(Request $request)
{
$id = 1;
$em = $this->getDoctrine()->getManager();
$productos= $em->getRepository('SysCatalogoBundle:Producto')->find($id);
$form = $this->createForm(new ProductoType(), $productos);


...
}

Si bien se genera un <select> con las categorías, no deja seleccionada la categoria a la que pertenece el producto, probé con un query_builder sin resultado, probe con new Categoria pero tampoco dejaba seleccionado el "selected", probe con un choice con un array fijo y si funcionaba, alguien sabe que puede ser??, estará mal planteada la relación?, seguí los ejemplos de la documentación doc español simfony2.

Se agredece la ayuda.

Última edición por capemp; 18/04/2013 a las 16:40 Razón: symfony2