aesen/laravel-auto-request

Automatically generate Laravel FormRequest classes from migrations

Maintainers

Package info

github.com/AbdullahEminEsen/laravel-auto-request

pkg:composer/aesen/laravel-auto-request

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-01-02 12:26 UTC

This package is auto-updated.

Last update: 2026-03-20 10:37:40 UTC


README

Automatically generate Laravel FormRequest classes (Store & Update) directly from your database migrations.

This package helps you eliminate repetitive boilerplate by reading migration definitions and converting them into validation rules and messages.

✨ Features

  • Generate Store and Update FormRequest classes

  • Parse rules directly from migrations

  • Automatically detects:

    • required / nullable
    • string, text, boolean, integer
    • foreignIdexists
    • unique
  • Update requests automatically use sometimes

  • Configurable validation language (tr, en)

  • Customizable validation messages

  • Overwrite protection

  • Artisan command support

📦 Installation

composer require aesen/laravel-auto-request

Laravel will auto-discover the service provider.

⚙️ Configuration

Publish the config file:

php artisan vendor:publish --tag=auto-request-config

This will create:

config/auto-request.php

Available Options

return [
    'language' => 'tr',

    'rules' => [
        'store' => [
            'required' => true,
        ],
        'update' => [
            'use_sometimes' => true,
        ],
    ],

    'messages' => [
        'tr' => [
            'required' => ':attribute alanı zorunludur.',
            'unique'   => ':attribute daha önce kullanılmış.',
            'exists'   => ':attribute geçerli değil.',
        ],
        'en' => [
            'required' => ':attribute is required.',
            'unique'   => ':attribute has already been taken.',
            'exists'   => ':attribute is invalid.',
        ],
    ],
];

🚀 Usage

Generate both Store & Update requests:

php artisan make:auto-request Post

Generate only Store request:

php artisan make:auto-request Post --only=store

Generate only Update request:

php artisan make:auto-request Post --only=update

Generated files:

app/Http/Requests/Post/
├── StorePostRequest.php
└── UpdatePostRequest.php

🧠 How It Works

The package scans the model's create table migration and converts column definitions into validation rules.

Example Migration

$table->string('title')->unique();
$table->text('body');
$table->foreignId('category_id');
$table->boolean('active')->nullable();

Generated Rules (Store)

'title' => ['required', 'string', 'unique:posts,title'],
'body' => ['required', 'string'],
'category_id' => ['required', 'integer', 'exists:categories,id'],
'active' => ['nullable', 'boolean'],

Generated Rules (Update)

'title' => ['sometimes', 'string', 'unique:posts,title,$this->route("id")'],
'body' => ['sometimes', 'string'],
'category_id' => ['sometimes', 'integer', 'exists:categories,id'],
'active' => ['nullable', 'boolean'],

🌍 Validation Messages

Messages are generated automatically using the selected language.

Example (tr):

'title.required' => 'Title alanı zorunludur.',
'title.unique'   => 'Title daha önce kullanılmış.',

🛣 Roadmap

  • Index-based unique detection
  • Model fillable fallback
  • Attribute translations
  • Column comment parsing
  • Custom rule presets

🧑‍💻 Author

Abdullah Emin Esen GitHub: https://github.com/AbdullahEminEsen

📄 License

MIT License