Creates an alias between a single attribute's validations to another. This copies all messages, errors, etc., to the current attribute as well as its validation state (isValid, isValidating, etc.)
Examples
validator('alias', 'attribute')
validator('alias', {
alias: 'attribute',
firstMessageOnly: true
})
buildOptions
(
Object
-
options
-
defaultOptions
-
globalOptions
Normalized options passed in.
validator('alias', 'attribute')
// Becomes
validator('alias', {
alias: 'attribute'
})
Returns:
createErrorMessage
(
String
-
type
-
value
-
options
Used by all pre-defined validators to build an error message that is present
in
validators/message
or declared in your i18n solution.
If we extended our default messages to include uniqueUsername: '{username} already exists'
,
we can use this method to generate our error message.
`
javascript
validate(value, options) {
const exists = false;
// check with server if username exists...
if(exists) {
// The username key on the options object will be used to create the error message
options.username = value;
return this.createErrorMessage('uniqueUsername', value, options);
}
return true;
}
`
If we input johndoe
and that username already exists, the returned message would be 'johndoe already exists'
.Parameters:
Returns:
String:
The generated message
getValue
()
Mixed
private
Wrapper method to
value
that passes the necessary parametersReturns:
Mixed:
value
test
(
Object
-
type
-
args
Easily compose complicated validations by using this method to validate
against other validators.
`
javascript
validate(value, options, ...args) {
let result = this.test('presence', value, { presence: true }, ...args);
if (!result.isValid) {
return result.message;
}
// You can even test against your own custom validators
result = this.test('my-validator', value, { foo: 'bar' }, ...args);
if (!result.isValid) {
return result.message;
}
result = this.test('number', value, { integer: true }, ...args);
// You can easily override the error message by returning your own.
if (!result.isValid) {
return 'This value must be an integer!';
}
// Add custom logic...
return true;
}
`
Parameters:
-
type
StringThe validator type (e.x. 'presence', 'length', etc.) The following types are unsupported: 'alias', 'belongs-to', 'dependent', 'has-many' -
args
...argsThe arguments to pass through to the validator
Returns:
Object:
The test result object which will contain
isValid
and message
. If the validator is async, then the
return value will be a promise.