public function formAddPeliculaAction()
{
$request = $this->getRequest();
$peliculaAux = new peliculas();
$form = $this->createFormBuilder($peliculaAux)
->add('titulo', 'text',array(
'attr' => array('style' => 'width: 400px')
))
->add('anno', 'integer')
->add('idDirector', 'entity', array(
'class' => 'edcpeliculasBundle:cineastas',
'property' => 'nombre'
))
->add('idActor1', 'entity', array(
'class' => 'edcpeliculasBundle:cineastas',
'property' => 'nombre'
))
->add('idActor2', 'entity', array(
'class' => 'edcpeliculasBundle:cineastas',
'property' => 'nombre'
))
->add('Guardar película', 'submit')
->getForm();
$form->handleRequest($request);
// por aquí solo entra cuando ya se ha dado el submit
if ($form->isValid()) {
// En $peliculaAux ya están los valores de los campos normales, en cambio
// los de tipo combo hay que rescatarlos y meterlos en peliculasAux
// antes de hacer el flush
$idDirector = $this->get('request')->request->get('form')["idDirector"];
$idActor1 = $this->get('request')->request->get('form')["idActor1"];
$idActor2 = $this->get('request')->request->get('form')["idActor2"];
$peliculaAux->setIdDirector($idDirector);
$peliculaAux->setIdActor1($idActor1);
$peliculaAux->setIdActor2($idActor2);
// Meterlo en la base de datos
$em = $this->getDoctrine()->getManager();
$em->persist($peliculaAux);
$em->flush(); // lo mete en la BD
return $this->redirect($this->generateUrl('edcpeliculas_listarPeliculas'));
}
return $this->render("edcpeliculasBundle:Default:formAddPelicula.html.twig",
array("formAux"=>$form->createView()));
}
Symfony: Formularios con campos entity
En el controller:
Suscribirse a:
Enviar comentarios (Atom)

No hay comentarios:
Publicar un comentario