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: Eliminar datos de una tabla

No hay comentarios :
Introducción

En esta entrada aprenderemos a eliminar datos o filas de una tabla de nuestra base de datos, como es una secuencia que se está llevando, es preferible que hagan las partes anteriores sobre CAKEPHP, debido a que en este punto muchos de los elementos fundamentales están hechos y contiene información dentro. Para ir a los inicios del proyecto que estamos realizando ir acá. Y para mas temas y otros pasos de CAKEPHP ir acá.

Desarrollo

Para eliminar una fila de nuestra tabla, es sumamente sencillo. Primero debemos ir a la vista app/View/nombres/listar.ctp. Estando ahí la modificamos para que quede de la siguiente manera.

<?php

echo ('<h1>Nombre de la BASE DE DATOS!</h1>');
// $nombres es la variable a la que le asignábamos el resultado de nuestra consulta en
// la función listar en nuestro controlador
if (empty($nombres)) {
    //Si no tienen nada nos dirá que no existen nombre actualmente
    echo ("Actualmente no hay Nombres.");
} else {

    echo '<table>';
    echo '<tr>';
    echo '<th>id</th>';
    echo '<th>Nombre</th>';
    
    // ---------------------------
    echo '<th>Acciiones</th>';
    // ---------------------------
 
    echo ' </tr>';

    foreach ($nombres as $nombre):
        // recorremos nuestra variable para obtener cada uno de nuestros 
        // nombres individualmente 
        // luego de nuestro nombre sacamos los datos donde 'Nombre' es el nombre
        // de nuestro modelo e 'id' y 'nombre' son los campos de la tabla
        echo '<tr>';
        echo '<td>';
        echo $nombre['Nombre']['id'];
        echo '</td>';
        echo '<td>';
        echo $nombre['Nombre']['nombre'];
        echo '</td>';
        
        // --------------------------- Link que se utiliza para eliminar un nombre
        // de nuestra tabla, Primero se coloca el nombre a mostrar ("Borrar") y 
        // posteriormente la acción del controlador que se desea ejecutar en este 
        // caso delete, además se le concatena el id del nombre que se desea eliminar
        echo '<td>';
        echo $this->Html->link("Borrar", array("action" => "delete/"
                                            . $nombre['Nombre']['id']));
        echo '</td>';
        // ---------------------------
        
        echo ' </tr>';
    endforeach;

    echo '</table>';
}

Lo único que se agregó fue una nueva columna a la tabla html que contendrá el link para eliminar el nombre, algo importante es esta parte, es que, gracias a CAKEPHP, el paso de parametros a las funciones es muy simple, solo colocamos el nombre de la acción a ejecutar, luego un slash "/" y posterior a esto los parámetros que recibe la función en nuestro caso solo es uno, pero si se necesitan muchos más solo se van separando con un slash "/".

Un ejemplo para lo anterior sería: delete/1 o delete/1/2/3/4
Donde los números corresponde a los valores que recibe como parámetro la función delete.

Ahora, que entendimos ese detalle, vamos al controlador app/Controller/NombresController.php, y agregamos la función para eliminar. Importante tener en cuenta que cuando hablamos de $this->Nombre nos estamos refiriendo al modelo.

public function delete($id = null) {
        // La función delete, busca el id en la base de datos y lo elimina.
        if ($this->Nombre->delete($id)) {
            // Muestra un mensaje informando lo sucedido
            $this->Session->setFlash('El nombre a sido eliminado correctamente.');
            // Una vez eliminado redirecciona a la vista listar, en la cual ya no
            // aparecerá el nombre seleccionado previamente.
            $this->redirect('/nombres/listar');
        } else {
            // Muestra un mensaje informando lo sucedido
            $this->Session->setFlash('El nombre no se ha podido eliminar');
        }
    }

Ahora, ejecutamos nuestra aplicación y podremos eliminar los nombres desde la vista listar o bien colocando la siguiente ruta: http://localhost/MiPrimerCakePHP/nombres/delete/3
Siendo 3 el id de nuestro nombre, en la tabla de la base de datos.

Conclusiones

CAKEPHP, nos ahora tiempo y esfuerzo, como lo hemos visto cada vez es más sencillo realizar las acciones básicas con su ayuda.

No hay comentarios :

Publicar un comentario