Laravel 11 Unique Validation on Update

Websolutionstuff | Feb-06-2025 | Categories : Laravel

In Laravel 11, when you're updating a resource (like a user or product) in your database, you might want to ensure that a certain field remains unique, even during updates. For example, you might want to make sure that a user’s email address isn’t duplicated, but allow it to remain the same during the update.

In this guide, I'll show you how to apply unique validation on updates in Laravel 11 easily.

How to Create Unique Validation on Update in Laravel 11

How to Create Unique Validation on Update in Laravel 11

 

Example:

Here’s an example of how to apply unique validation during an update in Laravel 11.

use Illuminate\Http\Request;
use App\Models\User;

public function updateUser(Request $request, $id)
{
    // Validate the data
    $request->validate([
        'email' => 'required|email|unique:users,email,' . $id,  // Unique validation for the 'email' field, ignoring the current user
    ]);

    // Find the user and update
    $user = User::findOrFail($id);
    $user->update([
        'email' => $request->email,
        // other fields you want to update
    ]);

    return response()->json(['message' => 'User updated successfully', 'user' => $user]);
}

 

Example:

You can create a request class for validation in laravel.

php artisan make:request StoreUserRequest
php artisan make:request UpdateUserRequest

app/Http/Requests/StoreUserRequest.php

<?php
  
namespace App\Http\Requests;
  
use Illuminate\Foundation\Http\FormRequest;
  
class StoreUserRequest extends FormRequest
{

    public function authorize()
    {
        return true;
    }
 
    public function rules()
    {
        return [
                'name' => 'required',
                'username' => 'required|min:8',
                'email' => 'required|email|unique:users,email'
            ];
    }
}

app/Http/Requests/UpdateUserRequest.php

<?php
  
namespace App\Http\Requests;
  
use Illuminate\Foundation\Http\FormRequest;
  
class UpdateUserRequest extends FormRequest
{
    public function authorize()
    {
        return false;
    }
  
    public function rules()
    {
        return [
                'name' => 'required',
                'username' => 'required|min:8',
                'email' => 'required|email|unique:users,email,'.$this->user->id
            ];
    }
}

 


You might also like:

Recommended Post
Featured Post
Dropdown Filter On Specific Column In Datatable
Dropdown Filter On Specific Co...

In this article, we will see how to add multiple filter dropdowns in datatable. This example is almost identical to...

Read More

Jun-06-2022

How to Change Date Format in Laravel 11
How to Change Date Format in L...

Hello developers! In this article, we'll see how to change the date format in laravel 11. Here, we'll learn...

Read More

Apr-29-2024

How To Use Image Intervention In Laravel 9
How To Use Image Intervention...

In this article, we will see how to use image intervention in laravel 9. Here, we will learn about image intervention an...

Read More

Feb-13-2023

Google Autocomplete Address In Laravel 8
Google Autocomplete Address In...

In this example we will see how to google autocomplete address in laravel 8. In laravel 8 google autocomplete address tu...

Read More

Aug-16-2021