Importante: Nunca usar guiones (ni bajos ni normales) en los nombres. Da problemas.
Crear por ejemplo una página que liste actores:
a) Crear desde la consola en bundle si no existía ya de antes (por ejemplo cine\actoresBundle)
b) En /src/cine/actoresBundle/Resources/config/routing.yml añadir:
cineactores_listadoActores:
pattern: /listadoActores
defaults: { _controller: cineactoresBundle:Default:listadoActores }
c) En /src/cine/actoresBundle/Controller/DefaultController.php añadir:
var $actores = array(
array("id_actor" => "1", "nombre"=>"James Stewart"),
array("id_actor" => "2", "nombre"=>"Gary Cooper"),
array("id_actor" => "3", "nombre"=>"James Cagney")
);
public function listadoActoresAction()
{
return $this->render('cineactoresBundle:Default:listadoActores.html.twig', array('actores' => $this->actores));
}
d) Crear la vista /src/cine/actoresBundle/Resources/views/Default/listadoActores.html.twig
<h1>Listado de actores</h1>
{% for actor in actores %}
<div>{{actor.id_actor}} - {{actor.nombre}} </div>
{% endfor %}
Este código es twig (bastante parecido al PHP)
Documentación de Twig: http://twig.sensiolabs.org/documentation
Para ejecutarlo:
http://localhost/pruebasymfony/web/app_dev.php/listadoActores
-----------------------------------------------------------------------------
Si quisieramos mostrar los datos de un actor concreto:
En routing.yml añadir:
cineactores_showActor:
pattern: /showActor/{id_actor}
defaults: { _controller: cineactoresBundle:Default:showActor }
En el controlador DefaultController:
public function showActorAction($id_actor)
{
return $this->render('cineactoresBundle:Default:showActor.html.twig', array('actor' => $this->actores[$id_actor-1]));
}
Crear la vista showActor.html.view:
<h1>Detalles del actor </h1>
<div>{{actor.id_actor}} - {{actor.nombre}} </div>
Para ejecutarlo:
http://localhost/pruebasymfony/web/app_dev.php/showActor/3
No hay comentarios:
Publicar un comentario