Saltar al contenido

Implementar deshacer check masivos con Laravel y eloquent

En una aplicación que desarrolle, hay una caso de uso donde el usuario final puede seleccionar con un solo boton N cantidad de registros cambiando su status, no es problema hacerlo con eloquent hacemos el update los que su campo «paid» esta en falso

 Transaction::select('id','paid')->where('paid','<>',true)
            ->update(['paid' => true,'flag'=>true,
            ]);    

¿ Entonces que hace ese campo «flag» ahí ? , lo uso para poder reversar la operacion , asociamos a un boton deshacer la siguiente funcion

 Transaction::select('id','paid')->where('flag',true)
            ->update(['paid' => DB::raw('NOT paid'),'flag'=>false,
            ]);            

Aqui uso , un Raw , donde hago un operacion inversa al valor actual «Not paid» , si el campo esta en true lo cambia a falso y viceversa , además desactivo la bandera.

Espero te sea útil