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 "Post actualizado correctamente"; } else { echo "El post no se ha actualizado"; } die(); }
El procedimiento es sencillo llamamos al entity manager, después llamamos al repositorio de la entidad, hacemos un find para conseguir el objeto que vamos a modificar, seteamos sus propiedades y lo guardamos en base de datos.
Si entramos a una url como esta
http://localhost/symfony2/web/app_dev.php/actualizar/1/titulo2/descripcion2/contenido2
Hace el update.
Más información:
Databases and Doctrine