Herramientas de usuario

Herramientas del sitio


informatica:programacion:php:frameworks:laravel:filament

Filament

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.

Tecnologías principales

Filament se construye sobre varias tecnologías:

  • Laravel: framwork PHP que Filament utiliza para aprovechar características como Eloquent ORM, migraciones, autenticación, y la estructura MVC de Laravel.
  • Livewire: para crear componentes dinámicos sin escribir JavaScript puro.
  • Alpine.js: proporciona interactividad ligera en el frontend (menús desplegables, modales, etc.).
  • Tailwind CSS: Framework de estilos utilizado para diseñar todos los componentes.
  • Blade: los componentes de Filament están construidos con plantillas de Blade, lo que permite extenderlos fácilmente.
  • Heroicons: biblioteca de iconos utilizada en los componentes de la interfaz (botones, menús, etc.).

Instalación

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

Creación de usuarios

php artisan make:filament-user

Paneles

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.

Tablas

Formularios

Plugins

  • Excel Export: exportación de datos en fichero Excel.
  • Curator: para gestionar multimedia.
  • Spatie Laravel Backup: permite hacer una copia de seguridad de nuestra aplicación.
  • Spatie Laravel Health: revisión de la salud de nuestra aplicación.
  • Jobs monitor: monitoriza las colas desde un panel.

Error 403 en producción

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.

Recursos

informatica/programacion/php/frameworks/laravel/filament.txt · Última modificación: por tempwin