DEV Community

Arshid
Arshid

Posted on

✨ Introducing data-request: A Cleaner Way to Handle Form Data in Laravel

Laravel developers love FormRequest classes for their clean validation approach. But if you've ever felt the boilerplate is too much—writing $request->validated() and manually assigning every input—you’re not alone.

The arshidkv12/data-request — a minimal Laravel package that lets you define validated fields as typed public properties and auto-fills them after validation.

✅ What Problem Does It Solve?

Normally, you'd do something like this:

public function store(Request $request)
{
    $validated = $request->validate([
        'name' => 'required|string',
        'email' => 'required|email',
    ]);

    $user = User::create([
        'name' => $validated['name'],
        'email' => $validated['email'],
    ]);
 }
Enter fullscreen mode Exit fullscreen mode

Or using FormRequest:

class RegisterRequest extends FormRequest
{
    public string $name;
    public string $email;

    public function rules(): array
    {
        return [
            'name' => 'required|string',
            'email' => 'required|email',
        ];
    }
}
Enter fullscreen mode Exit fullscreen mode

Then inside the controller:

public function store(Request $request)
{
    $user = User::create([
        'name' => $validated->name,
        'email' => $validated->email,
    ]);
 }
Enter fullscreen mode Exit fullscreen mode

No more $request->validated() and manual unpacking. Your public properties are automatically assigned from validated input.

🔧 Installation

composer require arshidkv12/data-request
Enter fullscreen mode Exit fullscreen mode

🛡️ Safety Features

✨ Uses Laravel’s native validation.

🧪 Fails fast if validation rules are missing.

✅ Type-safe properties prevent unexpected nulls or type mismatches.

📦 Use Cases

Perfect for:

  • API request classes
  • Form submissions
  • Admin panel inputs
  • Anywhere you want less repetitive validation-to-property code

Top comments (0)