Set Default Request Values in Laravel Using mergeIfMissing()

Automatically fill missing inputs without writing extra conditions.

  • 08 Apr, 2026
  • 32 Views

Set Default Request Values in Laravel Using mergeIfMissing()

The Problem: Handling Missing Inputs

In Laravel applications, you often need default values for request inputs.

Typical approach:

if (! $request->has('status')) {
    $request->merge(['status' => 'active']);
}

This works — but adds unnecessary conditions.


The Cleaner Solution: mergeIfMissing()

Laravel provides a simple method:

$request->mergeIfMissing([
    'status' => 'active'
]);

Real Project Example

Imagine filtering users:

$request->mergeIfMissing([
    'status' => 'active'
]);
$users = User::where('status', $request->status)->get();

Now:

  • If user sends status → used
  • If not → default applied

Why This Is Useful

It helps you:

  • Avoid repetitive if checks
  • Keep request handling clean
  • Set safe defaults easily
  • Improve readability

When to Use It

Use it when:

  • Setting default filters
  • Handling optional API inputs
  • Preparing request data before queries


Share: