Categories: Development

How to validate if username already exists in Laravel

Validating a registration form in Laravel to return an error message if the submitted username already exists.

This can be used for other fields like an email address or a membership number.

To validate if a field already exists in the database use the unique validation rule. Its simple format is:

unique:TABLE,COLUMN

such as

unique:users,username

The validator in app/Http/Controllers/Auth/RegisterController.php with a custom message returned if the username already exists

protected function validator(array $data)
{
    return Validator::make($data, [
        'username' => ['required', 'string', 'max:32', 'unique:users,username'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
    ], [
        'username.unique' => 'Sorry, this username has already been taken!',
    ]);
}

If a username already exists when trying to create a new account this is the message shown

Share

Recent Posts

Kennington reservoir drained drone images

A drained and empty Kennington reservoir images from a drone in early July 2024. The…

2 years ago

Merrimu Reservoir drone images

Merrimu Reservoir from drone. Click images to view larger.

2 years ago

Early September spring shots

Some early September spring shots from a bushwalk, It is still too early for wildflowers.

3 years ago

Cloning an NVMe to SK Hynix Platinum P41 NVMe

I recently needed to clone over a smaller NVMe to a 2TB SK Hynix Platinum…

3 years ago

Using Laravel’s deleteDirectory to delete folders and their contents

If you ever needed a simple solution in Laravel to delete an entire directory and…

3 years ago

How to allow only 1 user to register in a Laravel application

How to enforce only one user to register or be registered in a Laravel web…

3 years ago