Eliminación programada de modelos en Eloquent
Comprar curso

8. Eliminación programada de modelos en Eloquent

Programar la eliminación de modelos es una tarea útil para mantener tu base de datos limpia y ordenada. En este módulo, te enseñaremos cómo programar la eliminación de modelos utilizando Eloquent, y cómo puedes asegurarte de que el proceso de eliminación se realice de manera segura.


2 comentarios

Inicia sesión para comentar

Comentarios:

  • Victor Arana Flores

    Victor Arana Flores hace 1 año Destacado

    Programar la eliminación de modelos es una tarea útil para mantener tu base de datos limpia y ordenada. En Laravel, puedes programar la eliminación de modelos utilizando Eloquent y el programador de tareas (Task Scheduler) de Laravel. En este módulo, te enseñaremos cómo programar la eliminación de modelos utilizando Eloquent, y cómo puedes asegurarte de que el proceso de eliminación se realice de manera segura.

    Para programar la eliminación de modelos utilizando Eloquent, puedes utilizar el método where para filtrar los modelos que deseas eliminar y luego llamar al método delete para eliminarlos. Por ejemplo, si deseas eliminar todos los usuarios que no han iniciado sesión en los últimos 90 días, puedes hacer lo siguiente:

    use Illuminate\Support\Carbon;
    // ...
    User::where('last_login', '<', Carbon::now()->subDays(90))->delete();

    Este código utilizará el método where para filtrar todos los usuarios cuya fecha de último inicio de sesión sea anterior a 90 días atrás y luego llamará al método delete para eliminarlos.

    Es importante tener en cuenta que al programar la eliminación de modelos, debes asegurarte de que los datos relacionados estén seguros antes de eliminarlos. Puedes utilizar la eliminación en cascada en tus relaciones para asegurarte de que los datos relacionados se eliminen de manera segura.

    Para programar la eliminación de modelos utilizando el programador de tareas de Laravel, puedes utilizar el método call en la clase Illuminate\Console\Scheduling\Schedule. Por ejemplo, si deseas programar la eliminación de usuarios inactivos todos los días a las 2 a.m., puedes hacer lo siguiente:

    use Illuminate\Console\Scheduling\Schedule;
    use Illuminate\Support\Carbon;
    // ...
    protected function schedule(Schedule $schedule)
    {
       $schedule->call(function () {
           User::where('last_login', '<', Carbon::now()->subDays(90))->delete();
       })->dailyAt('2:00');
    }

    Este código utilizará el método dailyAt para programar la eliminación de usuarios inactivos todos los días a las 2 a.m. y luego utilizará el método call para llamar a una función que eliminará los usuarios inactivos utilizando el método where y delete.

    En resumen, programar la eliminación de modelos es una tarea útil para mantener tu base de datos limpia y ordenada. Para programar la eliminación de modelos utilizando Eloquent, utiliza el método where para filtrar los modelos que deseas eliminar y luego llama al método delete. Asegúrate de que los datos relacionados estén seguros antes de eliminarlos utilizando la eliminación en cascada en tus relaciones. Utiliza el programador de tareas de Laravel para automatizar el proceso de eliminación.

  • Eder Montiel

    Eder Montiel hace 1 año

    Hola profe buen curso saludos, este metodo solo serviria para eliminacion de registros? o tambien serviria si yo quiero actualizar un registro en la bd por ejemplo…

    • Victor Arana Flores hace 1 año

      Hola, este metodo solo sirve para eliminación. 

      Pero en Laravel existe algo que se llama tareas programadas (schedule) quizás te convenga investigar eso para lograr lo que quires hacer :D