PHPackages                             risetechapps/form-request-for-laravel - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Validation &amp; Sanitization](/categories/validation)
4. /
5. risetechapps/form-request-for-laravel

ActiveLibrary[Validation &amp; Sanitization](/categories/validation)

risetechapps/form-request-for-laravel
=====================================

Package Form Request

2.2.1(2mo ago)0561↓68.2%2MITPHPPHP ^8.3

Since Nov 27Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/risetechapps/form-request-for-laravel)[ Packagist](https://packagist.org/packages/risetechapps/form-request-for-laravel)[ Docs](https://github.com/risetechapps/form-request-for-laravel)[ RSS](/packages/risetechapps-form-request-for-laravel/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (18)Versions (9)Used By (2)

Laravel Form Request
====================

[](#laravel-form-request)

📌 Sobre o Projeto
-----------------

[](#-sobre-o-projeto)

O **Laravel Form Request** é um package para Laravel que gerencia as regras de validação dos formulários de forma dinâmica, permitindo definir regras tanto via código quanto via banco de dados.

✨ Funcionalidades
-----------------

[](#-funcionalidades)

- 📋 **Forms dinâmicos** - Regras de validação configuráveis em banco de dados
- 📁 **Forms via código** - Regras definidas em classes PHP
- 🔐 **Validadores customizados** - CPF, CNPJ, uniqueJson, required\_if\_any
- ⚡ **Cache** - Cache automático das regras para melhor performance
- 🔄 **Export/Import** - Migração de regras entre ambientes
- 📊 **Estatísticas** - Monitoramento e análise de uso

---

🚀 Instalação
------------

[](#-instalação)

### 1⃣ Requisitos

[](#1⃣-requisitos)

- PHP &gt;= 8.3
- Laravel &gt;= 12
- Composer instalado

### 2⃣ Instalação do Package

[](#2⃣-instalação-do-package)

```
composer require risetechapps/form-request-for-laravel
```

### 3⃣ Publicar Configuração

[](#3⃣-publicar-configuração)

```
php artisan vendor:publish --tag=config
```

### 4⃣ Executar Migrations

[](#4⃣-executar-migrations)

```
php artisan form-request:migrate
```

### 5⃣ (Opcional) Popular regras padrão

[](#5⃣-opcional-popular-regras-padrão)

```
php artisan form-request:seed
```

---

📋 Comandos Artisan
------------------

[](#-comandos-artisan)

### Gerenciamento de Regras

[](#gerenciamento-de-regras)

ComandoDescrição`php artisan form-request:list`Lista todas as regras em formato de tabela`php artisan form-request:list --database`Lista apenas regras do banco`php artisan form-request:list --config`Lista apenas regras em código`php artisan form-request:list --form=clients`Filtra por formulário específico`php artisan form-request:list --field=email`Filtra por campo específico### Exportar/Importar

[](#exportarimportar)

```
# Exportar todas as regras
php artisan form-request:export --file=regras.json

# Exportar apenas um formulário
php artisan form-request:export --file=clients.json --form=clients

# Importar regras
php artisan form-request:import --file=regras.json

# Importar e sobrescrever existentes
php artisan form-request:import --file=regras.json --force
```

### Cache

[](#cache)

```
# Pré-carregar cache de todos os formulários
php artisan form-request:warm-cache

# Pré-carregar cache de um formulário específico
php artisan form-request:warm-cache --form=clients

# Limpar cache de um formulário
php artisan form-request:clear-cache clients

# Limpar cache de todos os formulários
php artisan form-request:clear-cache --all
```

### Validação e Estatísticas

[](#validação-e-estatísticas)

```
# Validar sintaxe das regras
php artisan form-request:validate-rules

# Estatísticas básicas
php artisan form-request:stats

# Estatísticas detalhadas
php artisan form-request:stats --detailed
```

---

📝 Uso
-----

[](#-uso)

### Usando a Trait HasFormValidation

[](#usando-a-trait-hasformvalidation)

Crie um FormRequest que utiliza as regras dinâmicas:

```
use RiseTechApps\FormRequest\Traits\HasFormValidation\HasFormValidation;
use RiseTechApps\FormRequest\ValidationRuleRepository;

class StoreClientRequest extends FormRequest
{
    use HasFormValidation;

    protected ValidationRuleRepository $ruleRepository;
    protected array $result = [];

    public function __construct(ValidationRuleRepository $validatorRuleRepository)
    {
        parent::__construct();

        $this->ruleRepository = $validatorRuleRepository;
        $this->result = $this->ruleRepository->getRules('clients');
    }

    public function rules(): array
    {
        return $this->result['rules'];
    }

    public function messages(): array
    {
        return $this->result['messages'];
    }

    public function authorize(): bool
    {
        return auth()->check() && auth()->user()->hasPermission('clients.store');
    }
}
```

### Registrando Regras via Código

[](#registrando-regras-via-código)

#### Opção 1: Usando FormRequest::register()

[](#opção-1-usando-formrequestregister)

No `AppServiceProvider` ou em um Service Provider:

```
use RiseTechApps\FormRequest\FormRequest;

public function boot(): void
{
    FormRequest::register('clients', [
        'name' => 'required|string|max:255',
        'email' => 'required|email|unique:clients,email',
        'cpf' => 'required|cpf',
        'phone' => 'nullable|string',
    ], [
        'name.required' => 'O nome é obrigatório',
        'email.unique' => 'Este email já está cadastrado',
        'cpf.cpf' => 'CPF inválido',
    ], [
        'description' => 'Regras de validação para clientes',
    ]);
}
```

#### Opção 2: Usando RulesContract (Recomendado para projetos grandes)

[](#opção-2-usando-rulescontract-recomendado-para-projetos-grandes)

Crie uma classe de regras:

```
