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 clase.

public function insertarAction($title, $description, $content) {

        /* El objeto debería llamarse Post pero 
         * al ser generado a partir de una base de datos
         * el objeto se llama como la tabla a la
         * que representa.
         */

        $post = new Posts();

        $post->setTitle($title);
        $post->setDescription($description);
        $post->setContent($content);

        //Entity Manager
        $em = $this->getDoctrine()->getEntityManager();

        //Persistimos en el objeto
        $em->persist($post);

        //Insertarmos en la base de datos
        $flush = $em->flush();

        if ($flush == null) {
            echo "Post creado correctamente";
        } else {
            echo "El post no se ha creado";
        }

     
        die();
    }

Como observamos lo primero que hacemos es crear el objeto, luego hacer set a sus propiedades y a continuación guardamos los datos en la base de datos. Es sencillo.

Ahora si entramos a una url como esta:
http://localhost/symfony2/web/app_dev.php/insertar/titulo1/descripcion1/contenido1

Nos creará el registro en la tabla.

Más información:
Databases and Doctrine

Víctor Robles WEB

Autor: Victor

Desarrollador web - Formador online - Blogger

Compartir este post