Guías1 min de lectura

Cómo limitar clics en botones Livewire en Filament v3 (Rate Limiting fácil)

Ismael Santiago·7 de julio de 2025
Cómo limitar clics en botones Livewire en Filament v3 (Rate Limiting fácil)

Si usas Filament v3 y quieres evitar que un botón se dispare mil veces por minuto, te muestro cómo limitarlo en 2 pasos.

Instala el paquete

Abre tu terminal y ejecuta:

composer require danharrin/livewire-rate-limiting

Este paquete es mantenido por el creador de Filament y funciona perfecto con cualquier componente Livewire.

Aplícalo en tu método

Supongamos que tienes una página personalizada y quieres limitar un método llamado generarInforme. Añade el trait WithRateLimiting:

<?php
use DanHarrin\LivewireRateLimiting\WithRateLimiting;
use DanHarrin\LivewireRateLimiting\Exceptions\TooManyRequestsException;
use Filament\Notifications\Notification;
 
class GenerarInforme extends Page
{
    use WithRateLimiting;
 
    public function generarInforme(): void
    {
        try {
            $this->rateLimit(3); // máximo 3 veces por minuto
        } catch (TooManyRequestsException $e) {
            Notification::make()
                ->title('Demasiados intentos')
                ->body("Espera {$e->secondsUntilAvailable} segundos.")
                ->danger()
                ->send();
            return;
        }
    }
}

¿Te ha resultado útil? Compártelo.

¿Tienes un proyecto técnico?

Cuéntanos qué necesitas. Empezamos por entender.