Filament 4 : construire un back-office Laravel complet en une journée
07 Nov 2026 | Développement Web et Mobile
Écrire à la main un tableau de bord d'administration — listes, filtres, formulaires, validation, droits d'accès — est un travail répétitif qui n'apporte aucune valeur métier propre. Filament est un framework d'administration pour Laravel qui automatise l'essentiel de ce travail, en restant entièrement configurable en PHP. Avec la version 4, il gagne en performance et en ergonomie. Voici une méthode pour livrer un back-office complet en une journée.
Ce qui change avec Filament 4
Parmi les nouveautés mises en avant par la communauté, on retient surtout :
- un rendu allégé (moins de vues Blade, mises à jour partielles des formulaires) pour des écrans plus réactifs ;
- des aides côté navigateur (comme
hiddenJs()ouvisibleJs()) qui évitent des allers-retours serveur pour afficher ou masquer un champ ; - des ressources imbriquées, avec des pages complètes de création et d'édition pour les modèles liés ;
- un nouvel éditeur de texte riche basé sur TipTap ;
- Tailwind CSS v4 et un système de couleurs retravaillé ;
- une authentification multifacteur intégrée.
Avant de migrer un projet existant depuis la version 3, suivez le guide de mise à niveau officiel : la structure des fichiers générés et plusieurs API ont évolué.
1. Installer le panneau
Dans un projet Laravel à jour (vérifiez les versions de PHP et de Laravel exigées dans la documentation) :
composer require filament/filament:"^4.0"
php artisan filament:install --panels
php artisan make:filament-user
La deuxième commande crée le panneau d'administration (accessible par défaut sur /admin), la troisième un premier compte administrateur. En quelques minutes, vous disposez d'une interface fonctionnelle et authentifiée.
2. Générer une ressource CRUD
Une ressource Filament décrit comment un modèle Eloquent est listé, créé, modifié et supprimé. Pour un modèle Product existant :
php artisan make:filament-resource Product --generate
L'option --generate lit la structure de la table et pré-remplit les champs du formulaire et les colonnes du tableau. C'est le gain de temps le plus spectaculaire : vous obtenez une base fonctionnelle, que vous affinez ensuite.
3. Affiner formulaires et tableaux
Dans la classe de la ressource, le formulaire et le tableau se déclarent en PHP, sans HTML. Voici le principe (la forme exacte des méthodes dépend de la version : référez-vous au code généré dans votre projet) :
public static function form(Schema $schema): Schema
{
return $schema->components([
TextInput::make('name')->label('Nom')->required()->maxLength(255),
TextInput::make('price')->label('Prix')->numeric()->required(),
Select::make('category_id')->relationship('category', 'name'),
Toggle::make('is_active')->label('Actif'),
]);
}
Pour le tableau, vous déclarez les colonnes, les filtres et les actions :
- colonnes : texte, badge, image, avec recherche et tri en une méthode ;
- filtres : par statut, par catégorie, par intervalle de dates ;
- actions groupées : suppression, export, changement de statut sur plusieurs lignes.
Pensez dès cette étape aux relations Eloquent : une colonne qui affiche category.name sans chargement anticipé provoque des requêtes N+1. Notre guide sur les requêtes lentes sous Laravel explique comment les repérer.
4. Gérer les droits d'accès
Un back-office sans permissions n'est pas livrable. Filament s'appuie sur les policies Laravel : si une ProductPolicy existe, la ressource l'utilise pour afficher ou masquer les actions. Pour des rôles plus fins (éditeur, administrateur, lecteur), vous pouvez ajouter un package de rôles et permissions, puis restreindre l'accès au panneau via la méthode canAccessPanel() de votre modèle utilisateur. Activez aussi l'authentification multifacteur pour les comptes à privilèges.
5. Ajouter un tableau de bord utile
Les widgets transforment la page d'accueil en véritable outil de pilotage : indicateurs chiffrés, graphiques, derniers enregistrements.
php artisan make:filament-widget StatsOverview --stats-overview
Choisissez trois ou quatre indicateurs réellement consultés (commandes du jour, inscriptions, éléments à valider) plutôt qu'un mur de graphiques. Un tableau de bord se juge à la décision qu'il permet de prendre.
6. Organiser le projet
- Regroupez les ressources par thème avec les groupes de navigation.
- Déplacez la logique métier dans des classes d'action ou des services : la ressource décrit l'interface, pas les règles de gestion.
- Écrivez des tests Livewire sur les pages critiques (création, édition, suppression), car Filament repose sur Livewire.
- Si la partie publique de votre site utilise aussi Livewire ou Inertia, cohérence oblige : notre comparatif Livewire ou Inertia vous aide à choisir.
Un exemple concret : la migration d'un site WordPress
Filament est particulièrement adapté lorsqu'il faut remplacer le tableau de bord de WordPress. Nous le détaillons dans notre guide pour migrer un site WordPress vers Laravel : construire d'abord les ressources que l'équipe éditoriale utilise le plus conditionne l'adoption de la nouvelle solution. Un assistant de code configuré avec Laravel Boost peut aussi accélérer la génération des modèles et des ressources.
Conclusion
Filament 4 permet de passer d'un modèle Eloquent à une interface d'administration complète en quelques commandes. Le plan d'une journée est réaliste : une heure pour l'installation, trois ou quatre heures pour les ressources principales, une heure pour les droits d'accès, une heure pour le tableau de bord, le reste pour les tests. L'essentiel reste de ne pas multiplier les écrans : commencez par ce que vos utilisateurs font chaque jour.
Commentaires (0)
Aucun commentaire pour le moment.
Laissez un commentaire