Se você já desenvolveu aplicações com Laravel, sabe que construir um painel administrativo do zero pode ser trabalhoso e repetitivo. É nesse cenário que o FilamentPHP se destaca: um poderoso pacote que acelera o desenvolvimento de painéis administrativos modernos, responsivos e altamente personalizáveis.
Neste artigo, vamos mostrar como criar um painel completo usando FilamentPHP em um projeto Laravel. Da instalação à implementação de autenticação e permissões, você terá um painel funcional em pouco tempo — sem sacrificar flexibilidade.
O que é o FilamentPHP?
O FilamentPHP é um conjunto de pacotes open source para Laravel, focado na criação de interfaces administrativas com visual moderno, estrutura organizada e código enxuto. Ele é ideal para criar painéis de gestão, dashboards e sistemas internos de forma rápida e eficiente.
1. Preparando o ambiente
Pré-requisitos
Antes de começar, certifique-se de ter os seguintes itens instalados:
- PHP 8.1 ou superior
- Laravel 10 ou superior
- Composer
- Banco de dados (MySQL, PostgreSQL etc.)
Você também precisa de um projeto Laravel já criado. Caso ainda não tenha:
composer create-project laravel/laravel painel-admin
cd painel-admin
Instalando o FilamentPHP
No terminal, dentro da pasta do projeto:
composer require filament/filament
Agora, publique os arquivos necessários:
php artisan filament:install
Isso criará a estrutura básica e rotas administrativas. Acesse /admin no navegador.
2. Criando os primeiros recursos com Filament
Gerando Models, Migrations e Resources
Vamos criar uma entidade chamada Produto com campos nome, preco e descricao.
php artisan make:model Produto -m
No arquivo da migration:
Schema::create('produtos', function (Blueprint $table) {
$table->id();
$table->string('nome');
$table->decimal('preco', 8, 2);
$table->text('descricao')->nullable();
$table->timestamps();
});
Execute a migration:
php artisan migrate
Agora, crie o Resource do Filament:
php artisan make:filament-resource Produto
O Filament criará um CRUD completo com form e table já configurados!
Customizando formulários e tabelas
Você pode editar os arquivos em app/Filament/Resources/ProdutoResource para personalizar os campos exibidos no formulário e na tabela.
Exemplo de form com campos obrigatórios:
TextInput::make('nome')->required(),
TextInput::make('preco')->required()->numeric(),
Textarea::make('descricao'),
3. Adicionando autenticação e controle de acesso
Middleware de autenticação
O Filament já protege a rota /admin com autenticação. Basta criar um usuário:
php artisan make:filament-user
Informe e-mail, nome e senha, e o painel estará acessível.
Policies e permissões
Para controle granular, você pode gerar uma policy para o modelo Produto:
php artisan make:policy ProdutoPolicy --model=Produto
Registre a policy em AuthServiceProvider e use métodos como view, create, update, delete.
O Filament reconhece automaticamente essas permissões e adapta os botões e ações visíveis no painel.
4. Finalizando e testando seu painel
Testes básicos
Acesse /admin e entre com o usuário criado. Você verá a seção de Produtos, com CRUD funcional. Teste criar, editar e excluir dados.
Deploy da aplicação
Depois de finalizar a aplicação localmente, faça o deploy para um servidor ou plataforma como Laravel Forge, Ploi ou Laravel Vapor, lembrando de configurar corretamente as variáveis de ambiente e permissões de diretórios.
Conclusão
Com poucos comandos, conseguimos construir um painel administrativo completo e funcional usando FilamentPHP com Laravel. A produtividade que o Filament oferece é enorme — com recursos como filtros, ordenação, relacionamentos, charts e muito mais, ele é um verdadeiro aliado para quem deseja agilidade e qualidade