Noticias

* Completa este formulario para conocer los temas de tu interes, te tomará unos segundos.
* Nuevos temas en CAKEPHP
* Ahora puedes bajar los proyectos finalizados!
* Sigue a la página para seguir creciendo!!

viernes, 13 de febrero de 2015

CAKEPHP: Insertar datos en una tabla

No hay comentarios :
Introducción


Como continuación del proyecto que hemos iniciado en la entrega anterior Seleccionar datos de una tabla, continuaremos con otra acción básica con CAKEPHP. Esta vez, vamos a introducir datos en nuestra tabla, y como ya contamos con la vista de seleccionar veremos los datos reflejados directamente en nuestra aplicación. 

Como nota importante si no cuenta con la parte del proyecto realizada en la entrega anterior, puede ser un poco confuso, por eso es mejor que realicen la parte anterior antes de continuar con esta sección.

Desarrollo

Lo primero que haremos será crear la vista para ingresar los datos, esta vista contendrá un formulario pero creado con los métodos propios de CAKEPHP. Creamos un archivo llamado add.ctp, en la ruta: app/View/nombres
El cual contendrá el siguiente código:

<?php
// Se crea un formulario de tipo Nombre, cuya acción a realizar es la función add
// del controllador padre, en este caso NombresController.
// Se envía a través del método post hacia la función.
echo $this->Form->create('Nombre', array('action' => 'add', 'request' => 'post'));
// Las siguientes dos líneas son para mostrar mensajes, por ejemplo si se insertó
// o no el nombre en la base de datos
echo $this->Session->flash('auth');
echo $this->Session->flash();
echo (" Añadir Nuevo Nombre ");
// Crea un campo tipo input, correspondiente a la columna nombre de la base de datos
// es decir siempre se debe colocar el nombre de la columna de la base de datos.
echo $this->Form->input('nombre', array('label' => 'Nombre:'));
// Crea el botón y cierra el formulario.
echo $this->Form->end('Añadir');

Ahora vamos a nuestro controlador ubicado en app/Controller/NombresController.php y añadimos la función para nuestra vista add.ctp.

    public function add() {
        // Verifica si los datos vienen vía post
        if ($this->request->is('post')) {
            // Si la información no está vacía
            if (!empty($this->data)) {
                // Crea un nuevo nombre
                $this->Nombre->create();
                // Inserta los datos en la base de datos, la función save recibe
                // como parametro $this->data que son todos los valores del formulario
                if ($this->Nombre->save($this->data)) {
                    // Muestra un mensaje informando lo sucedido
                    $this->Session->setFlash('El nombre ha sido guardado correctamente.');
                    // Una vez guardado redirecciona a la vista listar para ver los datos
                    // ingresados
                    $this->redirect('/nombres/listar');
                } else {
                    // Muestra un mensaje informando lo sucedido
                    $this->Session->setFlash('El nombre no se ha podido guardar, verifique los
                        datos e inténtelo de nuevo.');
                }
            }
        }
    }

Con esto ya podremos ingresar nombres a nuestra base de datos ahora solo ejecutamos la aplicación con la siguiente dirección: http://localhost/MiPrimerCakePHP/nombres/add
Al escribir un nombre y presionar añadir, nos enviará a la vista nombres/listar  y podremos ver nuestro nuevo en la tabla.

Conclusiones

Como se aprecia la inserción de datos con CAKEPHP es muy simple y ordenado. En este caso es un ejemplo con un solo valor, sin embargo para tablas con más valores lo único que cambia sería la vista de añadir.

Con CAKEPHP nos ahorramos mucho tiempo al solo escribir una pocas líneas de código para lograr ingresar datos en nuestras tablas.

No hay comentarios :

Publicar un comentario