Filament es un framework de código abierto para Laravel que permite construir paneles de administración modernos y elegantes de forma rápida. Es ideal para crear interfaces de administración (CRUDs, dashboards, etc.) sin necesidad de escribir código frontend complejo.
Filament se construye sobre varias tecnologías:
Una vez dentro de nuestro proyecto Laravel, ejecutamos:
composer require filament/filament:"^3.3" -W
Y ahora instalamos el constructor de paneles de Filament:
php artisan filament:install --panels
El comando anterior preinstalará también el creador de formularios, tablas, notificaciones, acciones, listas de información y paquetes de widgets.
Nos aseguramos de haber ejecutado las migraciones (para tener la tabla de usuarios):
php artisan migrate
php artisan make:filament-user
Los paneles son los contenedores principales en Filament. Estos paneles permiten incluir páginas, recursos, formularios, tablas, notificaciones, acciones….
Todos los paneles incluyen un dashboard por defecto donde poder incluir widgets con estadísticas, gráficas, tablas y más.
Al indicar que el proyecto se ejecutará en producción mediante el fichero .env:
APP_ENV=production
Filament devolverá un error 403 al iniciar sesión en el panel de administración. Es el comportamiento esperado. Si queremos cambiarlo, hay que modificar el modelo app/Models/User.php:
<?php namespace App\Models; use Filament\Models\Contracts\FilamentUser; use Filament\Panel; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable implements FilamentUser { // ... public function canAccessPanel(Panel $panel): bool { return str_ends_with($this->email, '@yourdomain.com') && $this->hasVerifiedEmail(); } }
En el ejemplo anterior, solo permitiríamos el acceso al panel a las cuentas cuyo dominio fuesen yourdomain.com y tuvieran el e-mail verificado.