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
30 enero, 2015
hola
primero q nada muy buena pagina con tutoriales para aprender un poco mas de symfony 2
un pregunta, al actualizar los registros lei en otra pagina q tiene casi el mismo contenido de la documentacion oficial q para actualizar ya no se usaba el metodo $em->persist sino solamente el flush como se muestra en este link
http://librosweb.es/symfony_2_x/capitulo_8/un_ejemplo_sencillo.html
en todo caso no habria q modificar los ejemplos q tienes en tu pagina? o es q hay un error en esa otra pagina?
saludos
31 enero, 2015
Hacemos un find del objeto que queremos actualizar, luego un flush y luego un persist, así es como lo tengo yo entendido. Como lo hago yo te funcionará. Un saludo.
28 marzo, 2017
Hola Víctor!
Primero que nada agradecer tus aportes que siempre son excelentes, mi consulta: ¿Y en el caso de que lo que quieras sea actualizar el registro mediante un Form?, ejemplo, tienes el Listado de registros, creas un Link con el que pases las variables para que se genere el form hacia la ruta correspondiente (http://localhost:8000/update/1) con esto lo que quieres es que se cargue un formulario con los datos del registro con ID 1 y que todos los INPUTs carguen la data correspondiente para luego hacer los cambios en los respectivos INPUT´s y hacer un click en el Submit para que haga el update en la DB!
Como se haría en este caso?
Gracias por anticipado!