Pasar al contenido principal
Monoforms Web Development
CAPTCHA
1 + 0 =
Resuelva este simple problema matemático y escriba la solución; por ejemplo: Para 1+3, escriba 4.
Esta pregunta es para comprobar si usted es un visitante humano y prevenir envíos de spam automatizado.

Main navigation

  • Home
  • Sobre mi
  • Contacto
CAPTCHA
1 + 0 =
Resuelva este simple problema matemático y escriba la solución; por ejemplo: Para 1+3, escriba 4.
Esta pregunta es para comprobar si usted es un visitante humano y prevenir envíos de spam automatizado.

Sobrescribir enlaces de ayuda a la navegación

  1. Home
  2. CREANDO UN CRUD CON LAMINAS 5a PARTE: Eliminar Tarea

CREANDO UN CRUD CON LAMINAS 5a PARTE: Eliminar tarea

By peter, 27 Septiembre, 2021

La acción para eliminar una task no es complicada, de hecho es una de las acciones más sencillas. Vamos a crear una nueva acción en nuestro controlador ToDoController.php y la vamos a llamar deleteAction(), con el siguiente código:

public function deleteAction()
{
    $id = (int) $this->params()->fromRoute('id', 0);

    try {
        $task = $this->table->getTask($id);
    } catch (\Exception $e) {
        return $this->redirect()->toRoute('todo-app', ['action' => 'index']);
    }

    try {
        $this->table->deleteTask($task->id);
    } catch (\Exception $e){
        \error_log("error updating", $e->getMessage());
    }

    return $this->redirect()->toRoute('todo-app', ['action' => 'index']);
}

Al igual que editar y mostrar una tarea, pasamos el id por la url, el cual buscamos en la BD, si no la encontramos entonces redirigimos al listado de tareas. Si hemos encontrado el id, aplicamos el método deleteTask() de TaskTable, pasándole como parámetro el id de la task y por último redirigimos al listado.

Ahora en el listado vamos agregar un nuevo botón para eliminar la task, así como sigue:

<a class="btn btn-danger btn-sm p-1"
   onclick="return confirm('Are you sure you want to delete?')"
   href="<?= $this->url('todo-app', [
           'action' => 'delete',
           'id' => $task->id
       ]) ?>"
>
      Eliminar
 </a>

Agregamos el botón Eliminar con un color rojo para indicar que es una acción peligrosa mediante la clase btn-danger de bootstrap.

CREANDO UN CRUD CON LAMINA: delete button

Además en este botón agregamos código javascript para mostrarle una alerta al usuario con lo siguiente: “Are you sure want to delete?” (¿estás seguro de borrar la tarea?). Si el usuario confirma entonces se procede a eliminar la task. El botón debe lucir como en la imagen:

CREANDO UN CRUD CON LAMINA: delete button

Ahora vamos a implementar el método deleteTask() en nuestro archivo TaskTable.php, de la siguiente manera:

public function deleteTask($id)
{
    $this->tableGateway->delete(['id' => (int) $id]);
}

Este método solo recibe el id de la tarea y elimina completamente de la base de datos la información de esa tarea.

Al presionar el botón Eliminar ya no debes ver la tarea.


Por ahora es todo. No desesperen ya viene la última parte, lo prometo.

Saludos y happy coding :)

Etiquetas

  • laminas
  • crud
  • tutorial

Contenido reciente

  • Como limpiar usings sin usar en Rider
  • Instalando apache, mysql y php en Ubuntu
  • Cómo liberé 12GB en mi servidor y reviví mi sitio web (sin llorar… mucho)
  • ¿Que son los sitios web agregadores y los anuncios clasificados?
  • Mi Experiencia con Docker, Podman y Kubernetes
  • Lo más destacado del AWS User Group Puebla
  • Docker: Ignorar el directorio vendor en un proyecto de Go.
  • Instala Kubernetes en Ubuntu 22.04 para pruebas
  • Serverless, Lambda y Kubernetes: Fundamentos para la nube
  • Ejecuta tu lambda de Golang en AWS SAM de forma local

Recomendados

  • Biodiv
  • Medium
RSS feed

Política de privacidad

Términos de uso

Recomendados

  • Biodiv
  • Medium
Powered by Drupal

Monoforms ©2021 Created by Pedro Rojas Reyes