Como Criar um Painel Administrativo Completo com FilamentPHP e Laravel
Como Criar um Painel Administrativo Completo com FilamentPHP e Laravel

Como Criar um Painel Administrativo Completo com FilamentPHP e Laravel

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

Gostou do conteúdo? Baixe o código-fonte completo deste painel no nosso repositório do GitHub e comece a construir sua própria aplicação agora mesmo!

Leave a Comment

Comments

No comments yet. Why don’t you start the discussion?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *