object
Validates to the property to a valid object. Further you can define the shape of the object properties using the object.members()
method.
In the following example, we expect the profile
to be an object with the username
and the avatar_url
properties.
import { schema } from '@ioc:Adonis/Core/Validator'
{
profile: schema.object().members({
username: schema.string(),
avatar_url: schema.string()
})
}
// Valid data: { profile: { username: 'virk', avatar_url: 'somefile.jpg' } }
Mark as optional
You can mark the property to be optional by chaining the optional
method. The undefined
and the null
values are considered optional and removed from the validated object.
{
profile: schema.object
.optional() // 👈
.members({
username: schema.string(),
avatar_url: schema.string()
})
}
Mark as nullable
You can mark the property to be nullable by chaining the nullable
method. The nullable
fields must exist in the payload but can contain null values.
{
profile: schema.object
.nullable() // 👈
.members({
username: schema.string(),
avatar_url: schema.string()
})
}
Mark as nullable and optional
Mark the property both as nullable
and optional
. If the field value is undefined, it will be removed from the validated object. Otherwise, the validated value (including null) is returned.
{
profile: schema.object
.nullableAndOptional() // 👈
.members({
username: schema.string(),
avatar_url: schema.string()
})
}
Accept any elements
You can also define an object that accepts any properties. The object properties are not further validated to have a specific type.
{
colors: schema.object().anyMembers()
}