Filament is an admin panel framework for Laravel built on Livewire. Instead of writing controllers, Blade views and validation for every admin screen, you describe a resource in PHP and get a list, create and edit pages. This lesson uses Filament 4 with Laravel 12.
Installation and the first panel
composer require filament/filament:"^4.0"
php artisan filament:install --panels
php artisan make:filament-user
php artisan make:filament-resource Post --generatefilament:install --panels creates app/Providers/Filament/AdminPanelProvider.php and registers it. make:filament-user creates an account you can log in with at /admin.
<?php
namespace App\Providers\Filament;
use Filament\Panel;
use Filament\PanelProvider;
use Filament\Support\Colors\Color;
class AdminPanelProvider extends PanelProvider
{
public function panel(Panel $panel): Panel
{
return $panel
->default()
->id('admin')
->path('admin')
->login()
->colors(['primary' => Color::Amber])
->discoverResources(
in: app_path('Filament/Resources'),
for: 'App\\Filament\\Resources'
)
->discoverWidgets(
in: app_path('Filament/Widgets'),
for: 'App\\Filament\\Widgets'
);
}
}