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