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