Form Validation
Validate forms using ColdBox's cbValidation engine. CBWIRE automatically validates components on each request when constraints are defined, and provides helper methods for displaying validation errors.
Installation
Install cbValidation via CommandBox:
box install cbvalidationBasic Usage
Create a user registration form with validation:
// wires/UserRegistration.bx
class extends="cbwire.models.Component" {
data = {
"name": "",
"email": "",
"password": "",
"confirmPassword": ""
};
constraints = {
"name": {
"required": true,
"requiredMessage": "Name is required",
"size": "2..50"
},
"email": {
"required": true,
"requiredMessage": "Email is required",
"type": "email"
},
"password": {
"required": true,
"requiredMessage": "Password is required",
"size": "8..50"
},
"confirmPassword": {
"required": true,
"sameAs": "password",
"sameAsMessage": "Passwords must match"
}
};
function register() {
validateOrFail();
// Save user data
// redirect("/dashboard");
}
}Validation Methods
validateOrFail()
Validates data and silently stops function execution if validation fails (does not throw an exception):
validate()
Returns a ValidationResult object for manual error handling:
Error Display Methods
All Errors
Display all validation errors:
Field-Specific Errors
Display errors for specific fields:
Common Constraints
Most frequently used validation constraints:
required
Field must have a value
{"required": true}
type
Field must be specific type
{"type": "email"}
size
String length or numeric range
{"size": "8..50"}
min/max
Minimum/maximum value
{"min": 1, "max": 100}
sameAs
Must match another field
{"sameAs": "password"}
regex
Must match regular expression
{"regex": "^[A-Z].*"}
inList
Value must be in list
{"inList": "red,blue,green"}
Advanced Validation
Custom Constraints
Define validation constraints inline:
Conditional Validation
Use requiredIf and requiredUnless for conditional validation:
For complete constraint documentation, see cbValidation documentation.
Was this helpful?