If true validates that the given value is a valid collection and will add <ATTRIBUTE>.[] as a dependent key to the CP.
If false, validates that the given value is singular. Use this validator if you want validation to occur when the content of your collection changes.
Examples
validator('collection', true)
validator('collection', false)
validator('collection', {
collection: true,
message: 'must be a collection'
})
-
options -
defaultOptions -
globalOptions
Normalized options passed in.
validator('collection', true)
// Becomes
validator('collection', {
collection: true
})
Returns:
-
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.
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:
The generated message
Wrapper method to value that passes the necessary parameters
Returns:
value
-
type -
args
Easily compose complicated validations by using this method to validate against other validators.
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:
-
typeStringThe 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:
The test result object which will contain isValid
and message. If the validator is async, then the
return value will be a promise.