How to Use Unique Validation in Laravel?

By Hardik Savani | July 9, 2020 | Category : Laravel


This tutorial will give you example of laravel unique validation example. this example will help you unique validation in laravel example. I’m going to show you about how to use unique validation in laravel. this example will help you laravel form request validation unique. Let's get started with laravel email unique validation example.

Here, i would like to show you how to use unique validation in laravel 7 application. i will give you different way to adding unique validation with your application. you can add unique validation at create time and also update time.

Sometime we need to add unique validation for email, username etc. at that time if you check unique email or username then you have to write database query manually and do it using if condition. but laravel provide "unique" rule that will help to easily add unique validation.

you can also follow basic tutorial from scratch here: Laravel Form Validation Example.

Basically, you can create your own request class using bellow command:

Create Request Class:

php artisan make:request StoreUserRequest

php artisan make:request UpdateUserRequest

Now you can use it, in your controller as like bellow:

Controller File Code:

<?php

namespace App\Http\Controllers;

use App\Http\Requests\StoreUserRequest;

use App\Http\Requests\UpdateUserRequest;

use App\User;

class UserController extends Controller

{

public function store(StoreUserRequest $request)

{

/* Do Something */

}

public function update(UpdateUserRequest $request, User $user)

{

/* Do Something */

}

}

Now you can see bellow solution one by one and you can use anyone that you require for unique validation.

Example 1: Simple Unique Validation

app/Http/Requests/StoreUserRequest.php

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class StoreUserRequest extends FormRequest

{

/**

* Determine if the user is authorized to make this request.

*

* @return bool

*/

public function authorize()

{

return true;

}

/**

* Get the validation rules that apply to the request.

*

* @return array

*/

public function rules()

{

return [

'name' => 'required',

'username' => 'required|min:8',

'email' => 'required|email|unique:users'

];

}

}

Example 2: Unique Validation with Column Name

app/Http/Requests/StoreUserRequest.php

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class StoreUserRequest extends FormRequest

{

/**

* Determine if the user is authorized to make this request.

*

* @return bool

*/

public function authorize()

{

return true;

}

/**

* Get the validation rules that apply to the request.

*

* @return array

*/

public function rules()

{

return [

'name' => 'required',

'username' => 'required|min:8',

'email' => 'required|email|unique:users,email'

];

}

}

Example 3: Unique Validation with Rule

app/Http/Requests/StoreUserRequest.php

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

use Illuminate\Validation\Rule;

class StoreUserRequest extends FormRequest

{

/**

* Determine if the user is authorized to make this request.

*

* @return bool

*/

public function authorize()

{

return true;

}

/**

* Get the validation rules that apply to the request.

*

* @return array

*/

public function rules()

{

return [

'name' => 'required',

'username' => 'required|min:8',

'email' => ['required', Rule::unique('users')]

];

}

}

Example 4: Unique Validation with Update

app/Http/Requests/UpdateUserRequest.php

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class UpdateUserRequest extends FormRequest

{

/**

* Determine if the user is authorized to make this request.

*

* @return bool

*/

public function authorize()

{

return false;

}

/**

* Get the validation rules that apply to the request.

*

* @return array

*/

public function rules()

{

return [

'name' => 'required',

'username' => 'required|min:8',

'email' => 'required|email|unique:users,email,'.$this->user->id

];

}

}

Example 5: Unique Validation with Update Rule

app/Http/Requests/UpdateUserRequest.php

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class UpdateUserRequest extends FormRequest

{

/**

* Determine if the user is authorized to make this request.

*

* @return bool

*/

public function authorize()

{

return false;

}

/**

* Get the validation rules that apply to the request.

*

* @return array

*/

public function rules()

{

return [

'name' => 'required',

'username' => 'required|min:8',

'email' => ['required', Rule::unique('users')->ignore($this->user)]

];

}

}

You can use anyone that you need.

I hope it can help you...




Hardik Savani
My name is Hardik Savani. I'm a full-stack developer, entrepreneur and owner of Aatman Infotech. I live in India and I love to write tutorials and tips that can help to other artisan. I am a big fan of PHP, Javascript, JQuery, Laravel, Codeigniter, VueJS, AngularJS and Bootstrap from the early stage.
Follow Me: Github Twitter
***Do you want me hire for your Project Work? Then Contact US.

We are Recommending you: