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.