addCineasta:
path: /peliculas/addCineasta
defaults: { _controller: edcBundle:Default:addCineasta }
addPelicula:
path: /peliculas/addPelicula
defaults: { _controller: edcBundle:Default:addPelicula }
delCineasta:
path: /peliculas/delCineasta/{id}
defaults: { _controller: edcBundle:Default:delCineasta }
delPelicula:
path: /peliculas/delPelicula/{id}
defaults: { _controller: edcBundle:Default:delPelicula }
editCineasta:
path: /peliculas/editCineasta/{id}
defaults: { _controller: edcBundle:Default:editCineasta }
editPelicula:
path: /peliculas/editPelicula/{id}
defaults: { _controller: edcBundle:Default:editPelicula }
listarCineastas:
path: /peliculas/listarCineastas
defaults: { _controller: edcBundle:Default:listarCineastas }
listarPeliculas:
path: /peliculas/listarPeliculas
defaults: { _controller: edcBundle:Default:listarPeliculas }
En el defaultController:
<?php
namespace edcBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use edcBundle\Entity\cineastas;
use edcBundle\Form\cineastasType;
use edcBundle\Entity\peliculas;
use edcBundle\Form\peliculasType;
use edcBundle\Form\peliculasEditType;
use Symfony\Component\HttpFoundation\Request;
class DefaultController extends Controller
{
public function indexAction($name)
{
// return $this->render('edcBundle:Default:index.html.twig', array('name' => $name));
}
// **************************************************
public function addCineastaAction(Request $request)
{
$cineastaAux = new cineastas();
$form = $this->createForm(new cineastasType(),$cineastaAux);
$form->handleRequest($request);
if($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($cineastaAux);
$em->flush();
$this->get('session')->getFlashBag()->add(
'mensaje','Se ha añadido el cineasta correctamente'
);
return $this->redirect($this->generateUrl('listarCineastas'));
}
return $this->render('edcBundle:Default:addCineasta.html.twig',
array("form"=>$form->createView()));
}
// **************************************************
public function addPeliculaAction(Request $request)
{
$peliculaAux = new peliculas();
$form = $this->createForm(new peliculasType(),$peliculaAux);
$form->handleRequest($request);
if($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($peliculaAux);
$em->flush();
$this->get('session')->getFlashBag()->add(
'mensaje','Se ha añadido la película correctamente'
);
return $this->redirect($this->generateUrl('listarPeliculas'));
}
return $this->render('edcBundle:Default:addPelicula.html.twig',
array("form"=>$form->createView()));
}
// *****************************************
public function delCineastaAction($id)
{
$em = $this->getDoctrine()->getManager();
$cineastaAux = $em->getRepository('edcBundle:cineastas')->find($id);
if (!$cineastaAux) {
throw $this->createNotFoundException(
'No existe el cineasta con el valor:'.$id
);
}
$em->remove($cineastaAux);
$em->flush();
$this->get('session')->getFlashBag()->add(
'mensaje',
'Se ha eliminado el cineasta correctamente'
);
return $this->redirect($this->generateUrl('listarCineastas'));
}
// *****************************************
public function delPeliculaAction($id)
{
$em = $this->getDoctrine()->getManager();
$peliculaAux = $em->getRepository('edcBundle:peliculas')->find($id);
if (!$peliculaAux) {
throw $this->createNotFoundException(
'No existe la película con el valor:'.$id
);
}
$em->remove($peliculaAux);
$em->flush();
$this->get('session')->getFlashBag()->add(
'mensaje',
'Se ha eliminado la película correctamente'
);
return $this->redirect($this->generateUrl('listarPeliculas'));
}
// *******************************************
public function editCineastaAction($id,Request $request)
{
$cineastaAux = new cineastas();
$datos = $this->getDoctrine()
->getRepository('edcBundle:cineastas')
->find($id);
if (!$datos) {
throw $this->createNotFoundException(
'No existe el cineasta con el valor:'.$id
);
}
$form = $this->createForm(new CineastasType(), $datos);
$form->handleRequest($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
//$em->persist($p);
$em->flush();
$this->get('session')->getFlashBag()->add(
'mensaje',
'Se ha modificado el cineasta correctamente'
);
return $this->redirect($this->generateUrl('listarCineastas'));
}
return $this->render('edcBundle:Default:editCineasta.html.twig',array("form"=>$form->createView()));
}
// *******************************************
public function editPeliculaAction($id,Request $request)
{
$peliculaAux = new peliculas();
$datos = $this->getDoctrine()
->getRepository('edcBundle:peliculas')
->find($id);
if (!$datos) {
throw $this->createNotFoundException(
'No existe la película con el id:'.$id
);
}
$peliculasType = new peliculasEditType($this->getDoctrine()->getManager());
// Forzar a que en los combos queden seleccionada el item correspondiente
$peliculasType->setSelected('idDirector', $datos->getIdDirector());
$peliculasType->setSelected('idActor1', $datos->getIdActor1());
$peliculasType->setSelected('idActor2', $datos->getIdActor2());
$form = $this->createForm($peliculasType, $datos);
$form->handleRequest($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
//$em->persist($p);
$em->flush();
$this->get('session')->getFlashBag()->add(
'mensaje',
'Se ha modificado la película correctamente'
);
return $this->redirect($this->generateUrl('listarPeliculas'));
}
return $this->render('edcBundle:Default:editPelicula.html.twig',array("form"=>$form->createView()));
}
// *******************************************
public function getNombreCineasta($id) {
$em = $this->getDoctrine()->getManager();
$cineastaAux = $em->getRepository('edcBundle:cineastas')->find($id);
return $cineastaAux->getNombre();
}
// **************************************
public function listarCineastasAction()
{
$datos = $this->getDoctrine()
/*
->getRepository('edcBundle:cineastas')
->findAll();
*/
// Si queremos una SQL más especifica entonces en vez de findAll:
->getRepository('edcBundle:cineastas')
->createQueryBuilder('c')
->where('c.nombre LIKE :nombre1')
->orWhere('c.nombre LIKE :nombre2')
->andWhere('c.id >0')
->setParameter('nombre1', '%a%')
->setParameter('nombre2', '%b%')
->orderBy('c.nombre', 'ASC')
->getQuery()
->getResult();
return $this->render('edcBundle:Default:listarCineastas.html.twig',compact("datos"));
}
// **************************************
public function listarPeliculasAction()
{
$datos = $this->getDoctrine()
->getRepository('edcBundle:peliculas')
->findAll();
// Crear array auxiliar para que en los listados muestre los nombres y no los id
$arrCineastas = array();
foreach ($datos as $clave => $valor) {
$idCineasta = $valor->getIdDirector();
$nomDirector = $this->getNombreCineasta($idCineasta);
$idCineasta = $valor->getIdActor1();
$nomActor1 = $this->getNombreCineasta($idCineasta);
$idCineasta = $valor->getIdActor2();
$nomActor2 = $this->getNombreCineasta($idCineasta);
$arrAux = array("nomDirector"=>$nomDirector, "nomActor1"=>$nomActor1,"nomActor2"=>$nomActor2);
$arrCineastas[$valor->getId()] = $arrAux;
}
return $this->render('edcBundle:Default:listarPeliculas.html.twig',
array("arrDatos"=>$datos, "arrCineastas"=>$arrCineastas));
}
}

No hay comentarios:
Publicar un comentario