Back
validatesUniquenessOf()
Validates that the value of the specified property is unique in the database table. Useful for ensuring that two users can't sign up to a website with identical usernames for example. When a new record is created, a check is made to make sure that no record already exists in the database table with the given value for the specified property. When the record is updated, the same check is made but disregarding the record itself.
1. Ensure that usernames are unique across all users
validatesUniquenessOf(
property="username",
message="Sorry, that username is already taken."
);
2. Ensure that email addresses are unique
validatesUniquenessOf(
property="emailAddress",
message="This email has already been registered."
);
3. Allow the same username in different accounts but unique within an account
validatesUniquenessOf(
property="username",
scope="accountId",
message="This username is already used in this account."
);
4. Only enforce uniqueness if the user is active
validatesUniquenessOf(
property="username",
condition="this.isActive",
message="Active users must have a unique username."
);
5. Skip uniqueness check if the field is blank
validatesUniquenessOf(
property="nickname",
allowBlank=true,
message="Nickname must be unique if supplied."
);
Copied!