edcpeliculas_addCineasta:
path: /peliculas/addCineasta
defaults: { _controller: edcpeliculasBundle:Default:addCineasta }
edcpeliculas_delCineasta:
path: /peliculas/delCineasta/{id}
defaults: { _controller: edcpeliculasBundle:Default:delCineasta }
edcpeliculas_editCineasta:
path: /peliculas/editCineasta/{id}
defaults: { _controller: edcpeliculasBundle:Default:editCineasta }
edcpeliculas_listarCineastas:
path: /peliculas/listarCineastas
defaults: { _controller: edcpeliculasBundle:Default:listarCineastas }
En el defaultController:
<?php
namespace edc\peliculasBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use edc\peliculasBundle\Entity\peliculas;
use edc\peliculasBundle\Entity\cineastas;
use edc\peliculasBundle\Form\cineastasType;
use edc\peliculasBundle\Form\PeliculasType;
use Symfony\Component\HttpFoundation\Request;
class DefaultController extends Controller
{
public function indexAction()
{
}
// **************************************************
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('edcpeliculas_listarCineastas'));
}
return $this->render('edcpeliculasBundle:Default:addCineasta.html.twig',
array("form"=>$form->createView()));
}
// *****************************************
public function delCineastaAction($id)
{
$em = $this->getDoctrine()->getManager();
$cineastaAux = $em->getRepository('edcpeliculasBundle: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('edcpeliculas_listarCineastas'));
}
// *******************************************
public function editCineastaAction($id,Request $request)
{
$cineastaAux = new cineastas();
$datos = $this->getDoctrine()
->getRepository('edcpeliculasBundle: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('edcpeliculas_listarCineastas'));
}
return $this->render('edcpeliculasBundle:Default:editCineasta.html.twig',array("form"=>$form->createView()));
}
// **************************************
public function listarCineastasAction()
{
$datos = $this->getDoctrine()
/*
->getRepository('edcpeliculasBundle:cineastas')
->findAll();
*/
// Si queremos una SQL más especifica entonces en vez de findAll:
->getRepository('edcpeliculasBundle:cineastas')
->createQueryBuilder('c')
->where('c.nombre LIKE :nombre1')
->orWhere('c.nombre LIKE :nombre2')
->andWhere('c.id >10')
->setParameter('nombre1', '%j%')
->setParameter('nombre2', '%b%')
->orderBy('c.nombre', 'ASC')
->getQuery()
->getResult();
return $this->render('edcpeliculasBundle:Default:listarCineastas.html.twig',compact("datos"));
}
}
Vista listarCineastas.html.twig
{% extends 'edcpeliculasBundle::viewEDC.html.twig' %}
{% block body %}
{{ parent() }}
<h1>Listado de cineastas</h1>
{% for flashMessage in app.session.flashbag.get('mensaje') %}
<span class="alert-success">
{{ flashMessage }}
<hr />
</span>
{% endfor %}
<hr />
<table class="table table-bordered">
<tbody>
<th>
Cineasta
</th>
<th>Nombre</th>
</tbody>
{% for dato in datos %}
<tr>
<td>{{dato.nombre}}</td>
<td>
<a href="{{ path('edcpeliculas_editCineasta', {'id':dato.id}) }}" title="Editar">Editar</a>
-
<a href="{{ path('edcpeliculas_delCineasta', {'id':dato.id}) }}" title="Eliminar">Eliminar</a>
</td>
</tr>
{% endfor %}
</table>
{% endblock %}
Vista addCineasta.html.twig
{% extends 'edcpeliculasBundle::viewEDC.html.twig' %}
{% block body %}
{{ parent() }}
<h1>Agregar Cineasta</h1>
{{ form_start(form) }}
<p>Nombre : {{form_widget(form.nombre)}}</p>
<p>
<hr />
{{form_widget(form.guardar)}}
</p>
{{ form_end(form) }}
{% endblock %}
Vista editCineasta.html.twig
{% extends 'edcpeliculasBundle::viewEDC.html.twig' %}
{% block body %}
{{ parent() }}
<h1>Editar Cineasta</h1>
{{ form_start(form) }}
<p>Nombre: {{form_widget(form.nombre)}}</p>
<p>
<hr />
{{form_widget(form.guardar)}}
</p>
{{ form_end(form) }}
{% endblock %}
Vista (de la que heredan) viewEDC.html.twig (se guarda en la raiz del view de nuestro Bundle)
{# esta va a ser la vista standard que heredaran las otras vistas #}
{% extends "::base.html.twig" %}
{% block stylesheets %}
<link href="{{ asset('bundles/peliculas/css/css_edc.css') }}" rel="stylesheet" />
<link href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
{% endblock %}
{% block body %}
<ol class="breadcrumb">
<li><a href="{{ path('edcpeliculas_addCineasta') }}">Añadir cineasta</a></li>
<li><a href="{{path('edcpeliculas_listarCineastas') }}">Listar cineastas</a></li>
</ol>
{% endblock %}

No hay comentarios:
Publicar un comentario