$em = $this->getDoctrine()->getManager();
$connection = $em->getConnection();
$statement = $connection->prepare("SELECT * FROM comments WHERE visible and id_producto = '".$product->getId()."' and origen = 'productos' order by fecha desc");
$statement->execute();
$arrComent = $statement->fetchAll();
// FinComentarios
$data["arrComent"] = $arrComent;
return $this->render($layoutPath, $data);
Mostrando entradas con la etiqueta Symfony. Mostrar todas las entradas
Mostrando entradas con la etiqueta Symfony. Mostrar todas las entradas
Symfony: Hacer una query personalizada en el controller y pasar el resultado a la vista
En el controller:
Symfony: Crear tus propias páginas
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
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
Symfony: Crear Bundle
Desde la consola ir a donde esté nuestro symfony instalado:
d:\wamp\www\pruebasymfony
y escribir:
php app/console generate:bundle
En bundle namespace especificamos la carpeta y el fichero, por ejemplo:
prueba1\ejemploBundle
Todo lo demás que nos va preguntando le damos a intro.
En "configuration format" escribir yml.
Generar la estructura completa de directorio: Yes
-------------------------------------------------------
Una vez creado nos habrá añadido nuestro nuevo bundle en:
/app/appKernel.php
/app/config/routing.yml
/src/ /* aquí habrá creado la carpeta con nuestro budle con el ejemplo de prueba de Hello */
Ahora cuando ejecutemos: http://localhost/pruebasymfony/web/app_dev.php/hello/pepeluis lo que hará será irse al routing de nuestro bundle:
/src/prueba1/ejemploBundle/Resources/config/routing.yml
Este carga su correspondiente controlador:
/src/prueba1/ejemploBundle/Controller/DefaultControler.php
Y este llama a su correspondiente vista:
/src/prueba1/ejemploBundle/Resources/views/Default/index.html.twig
---------------------------------------------------
Borrar un bundle en concreto
d:\wamp\www\pruebasymfony
y escribir:
php app/console generate:bundle
En bundle namespace especificamos la carpeta y el fichero, por ejemplo:
prueba1\ejemploBundle
Todo lo demás que nos va preguntando le damos a intro.
En "configuration format" escribir yml.
Generar la estructura completa de directorio: Yes
-------------------------------------------------------
Una vez creado nos habrá añadido nuestro nuevo bundle en:
/app/appKernel.php
/app/config/routing.yml
/src/ /* aquí habrá creado la carpeta con nuestro budle con el ejemplo de prueba de Hello */
Ahora cuando ejecutemos: http://localhost/pruebasymfony/web/app_dev.php/hello/pepeluis lo que hará será irse al routing de nuestro bundle:
/src/prueba1/ejemploBundle/Resources/config/routing.yml
Este carga su correspondiente controlador:
/src/prueba1/ejemploBundle/Controller/DefaultControler.php
Y este llama a su correspondiente vista:
/src/prueba1/ejemploBundle/Resources/views/Default/index.html.twig
---------------------------------------------------
Borrar un bundle en concreto
en /src/ borrar físicamente la carpeta de ese bundle con todo lo que contiene
en /tests/ borrar físicamente la carpeta de ese bundle con todo lo que contiene
en /app/appKernel.php eliminar las líneas correspondientes de ese bundle
en /app/config/routing.yml eliminar las líneas correspondientes de ese bundle
en /app/config/config.yml eliminar las líneas correspondientes de ese bundle
Symfony 2: Instalación
http://www.maestrosdelweb.com/curso-symfony2-introduccion-instalacion/
Una vez tengas instalado el composer en tu ordenador y a la consola (en Windows 8.1 es Windows+R y escribir CMD).
Irte a donde quieras instalar el symfony:
d:\wamp\www
Y escribir:
Otro método para hacer la instalación más rápida es:
Obtener el fichero de symfony con:
Actualizar:
Una vez tengas instalado el composer en tu ordenador y a la consola (en Windows 8.1 es Windows+R y escribir CMD).
Irte a donde quieras instalar el symfony:
d:\wamp\www
Y escribir:
composer create-project symfony/framework-standard-edition miprimersymfony 2.2.0
Por ejemplo para instalar la versión 2.6 sería:
composer create-project symfony/framework-standard-edition proyectolsg 2.6
Una vez instalado todo para comprobar que rula entrar en:
d:\wamp\www\miprimersymfony
y escribir:
php app\check.php
Si todo va bien te dira a todo OK.
Para ejecutarlo por primera vez crear en el wamp server el correspondiente directorio
virtual tanto en hosts como en httpd.conf y ejecutar la web:
http://localhost/pruebasymfony/web/app_dev.php
Te saldra la ventana de bienvenida desde donde gestionar ya todo.
-------------------------------
Para empezar a hacer configuraciones (por ejemplo crear la BD):
http://localhost/pruebasymfony/web/config.php
Una vez configurada la BD guardar siempre el número secreto que nos den.
Para probar que funciona:
http://localhost/pruebasymfony/web/app_dev.php/demo/hello/Pepeluis La configuración se puede crear o modificar si se prefiere directamente editando:
D:\wamp\www\pruebasymfony\app\config\parameters.yml
--------------------------------
IMPORTANTE: Modificar \web\app.php:
$kernel = new AppKernel('dev', true); // new AppKernel('prod', false);
-----------------------------------
Borrar la caché:
php app/console cache:clear
Otro método para hacer la instalación más rápida es:
Obtener el fichero de symfony con:
php -r "readfile('http://symfony.com/installer');" > symfony
Y una vez obtenido copiarlo a c:\xampp\htdocs y desde allí ejecutar:
php symfony new lsg2_8 2.8
Modificar en app/config/parameters.yml la configuración correcta a la BDActualizar:
composer update
A partir de aquí:
http://symfony.com/doc/2.8/page_creation.html
Instalar el Sonata:
https://sonata-project.org/bundles/doctrine-orm-admin/master/doc/reference/installation.html
http://www.miguelvilata.com/blog/creando-un-proyecto-base-con-symfony-y-sonata-project
Suscribirse a:
Entradas (Atom)
