Ejecutar consultas SQL en Symfony2 / 2.8 / 3
Hay veces que cuando utilizamos un framework necesitamos ejecutar consultas SQL nativas. Hoy veremos como ejecutar consultas SQL en Symfony2 mediante Doctrine 2. En una acción por ejemplo: //Entity manager y conexión a la BD $em = $this->getDoctrine()->getEntityManager(); $db = $em->getConnection(); $query = "SELECT * FROM posts; "; $stmt = $db->prepare($query); $params = array(); $stmt->execute($params); $po=$stmt->fetchAll(); // Mostrar todo foreach ($po as $p) { echo $p["title"]; echo "<br/>"; echo...
Borrar registros de la base de datos en Symfony2
Veamos como borrar registros de la base de datos en Symfony2 con Doctrine. Crearemos una ruta para el método action de borrar. borrar: path: /borrar/{id} defaults: { _controller: PruebasEjemploBundle:Default:borrar } public function borrarAction($id) { //Entity Manager $em = $this->getDoctrine()->getEntityManager(); $posts = $em->getRepository("PruebasEjemploBundle:Posts"); $post = $posts->find($id); $em->remove($post); $flush=$em->flush(); if ($flush == null) { echo "Post se ha borrado correctamente"; } else { echo "El post no se ha borrado"; }...
Actualizar registros de la base de datos en Symfony2
Veamos como actualizar registros de la base de datos en Symfony2. Crearemos una ruta para ello. actualizar: path: /actualizar/{id}/{title}/{description}/{content} defaults: { _controller: PruebasEjemploBundle:Default:actualizar } Creamos también una acción. public function actualizarAction($id, $title, $description, $content) { //Entity Manager $em = $this->getDoctrine()->getEntityManager(); $posts = $em->getRepository("PruebasEjemploBundle:Posts"); $post = $posts->find($id); $post->setTitle($title); $post->setDescription($description); $post->setContent($content); //Persistimos en el objeto $em->persist($post); //Insertarmos en la base de datos $flush = $em->flush(); if ($flush == null) { echo...
Sacar de la base de datos en Symfony2
Vamos a ver como conseguir los datos que hay guardados en una tabla, esto sería lo equivalente a la sentencia SELECT pero con Doctrine. Con los métodos find de Doctrine podremos sacar de la base de datos en Symfony2. Crearemos una ruta para listar los datos. listar: path: /listar defaults: { _controller: PruebasEjemploBundle:Default:listar } Y creamos un método en el controlador. public function listarAction() { //Entity Manager $em =...
Insertar en la base de datos en Symfony2
Como sabemos Symfony2 usa Doctrine 2 para manejar la base de datos, haremos uso de este y veremos como insertar en la base de datos en Symfony2. Crearemos una ruta(routing.yml) que recibirá los parámetros a insertar en la base de datos: insertar: path: /insertar/{title}/{description}/{content} defaults: { _controller: PruebasEjemploBundle:Default:insertar } Ahora en el controlador de nuestro bundle creamos el método. Debemos hacer un use del objeto post antes de la...
Generar tablas a partir de entidades con Doctrine
Para generar tablas a partir de entidades con Doctrine en Symfony2 debemos ejecutar tres comandos en el caso de que la base de datos ya esté creada. Si la base de datos está vacía podemos ejecutar directamente php app/console doctrine:schema:create Si queremos borrar todas las tablas y generar nuevas a partir de entidades drop php app/console doctrine:schema:drop --force Si queremos actualizar campos php app/console doctrine:schema:update --force ¿Quieres más? Vídeo...
Generar entidades con Doctrine 2
Para generar entidades con Doctrine 2 en Symfony2 simplemente tendremos que usar el comando php app/console doctrine:generate:entity A partir de aquí el asistente nos irá pidiendo los campos, el tipo, etc. ¿Quieres más? Vídeo Curso de Symfony3 ¡Domina el framework PHP más completo! Más información: Generate Doctrine Entity – Symfony2 Official...
Generar entidades a partir de base de datos con Doctrine 2
Doctrine es el ORM más poderoso que tenemos en PHP y Symfony lo usa para todo lo que tiene que ver con interacciones con la base de datos. Seguro que se puede dar el caso en el que necesitamos generar todas las entidades a partir de una base de datos ya existente. Esto es muy cómodo porque podemos hacer nuestra base de datos en SQL o con cualquier programa...
Recoger variables GET y POST en Symfony2
Veamos un ejemplo simple de como recoger los valores que nos llegan desde GET y POST en Symfony2. Simplemente tendremos que hacer uso de HttpFundation para acceder a diversas variables superglobales entre ellas GET y POST. Ejemplo: <?php namespace Ejemplos\PruebasBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\HttpFoundation\Response; //Usar request http fundation use Symfony\Component\HttpFoundation\Request; class PruebasController extends Controller { public function indexAction(Request $request){ //Recoger GET $var=$request->query->get("page"); var_dump("GET:".$var); //Recoger POST $var=$request->request->get("page"); var_dump("POST:".$var); die(); }...
Redirecciones en Symfony2
Las redirecciones en Symfony2 son muy sencillas, están disponibles en los controladores. Dentro de una acción del controlador: //Nos redirigirá a la ruta cuyo nombre sea index return $this->redirect($this->generateURL('index')); //Nos redigirá a index?hola haya ruta o no return $this->redirect("index?hola"); ¿Quieres más? Vídeo Curso de Symfony3 ¡Domina el framework PHP más...
Rutas en Symfony2
El sistema de rutas es algo muy importante dentro de un Framework. Veamos como se definen rutas en Symfony2. Se pueden definir rutas globales y rutas dentro de un bundle. En nuestro caso modificaremos el fichero Src/Ejemplos/PruebasBundle/Resources/config/routing.yml ejemplos_pruebas_homepage: path: /hello/{name} defaults: { _controller: EjemplosPruebasBundle:Default:index } Para la acción index, le digo que la ruta va a ser /index y que va a utilizar el método Action del controlador Pruebas...
Crear controladores en Symfony2
Para crear controladores en Symfony2 tendremos que irnos al directorio Controllers de nuestro Bundle. Pongo un ejemplo a continuación. Crearé el fichero Src/Ejemplos/PruebasBundle/Controller/PruebasController.php <?php //Le decimos el namespace namespace Ejemplos\PruebasBundle\Controller; //Le decimos que esto es un controlador use Symfony\Bundle\FrameworkBundle\Controller\Controller; //El nombre de la clase siempre debe ser el mismo que el del fichero y extendemos a la clase Controller class PruebasController extends Controller { //Creamos métodos action . Acciones...