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.

Laravel validate if username already exists

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

Laravel username already exists validation