AdonisJS v6 is here. Learn more in our release blog post.

requiredIf

The requiredIf rules allows you to mark a field as required when a certain condition is met. When using the requiredIf rules, you must mark the field as optional first.

requiredIfExists

Validates the field to be present when other the field is present. For example: The user must fill out the shipping address when opted for delivery.

The opposite of this rule is requiredIfNotExists

If field parameter starts with /, then it will be searched from the root of the object.

import { schema, rules } from '@ioc:Adonis/Core/Validator'
{
address: schema.string.optional([
rules.requiredIfExists('needs_delivery')
])
}

requiredIfExistsAll

Same as the requiredIf rule, but here you can define more than one field to exist in order for the field to be required.

The opposite of this rule is requiredIfNotExistsAll

If field parameter starts with /, then it will be searched from the root of the object.

import { schema, rules } from '@ioc:Adonis/Core/Validator'
{
tax_id: schema.string.optional([
rules.requiredIfExistsAll(['owns_a_car', 'owns_a_house'])
])
}

requiredIfExistsAny

Mark the current field as required, when any of the other fields exists and contains some value.

The opposite of this rule is requiredIfNotExistsAny

If field parameter starts with /, then it will be searched from the root of the object.

import { schema, rules } from '@ioc:Adonis/Core/Validator'
{
password: schema.string.optional([
rules.requiredIfExistsAny(['username', 'email'])
])
}

requiredWhen

Mark the current field as required when the value of the other field matches a given criteria.

If field parameter starts with /, then it will be searched from the root of the object.

import { schema, rules } from '@ioc:Adonis/Core/Validator'
{
address: schema.string.optional([
rules.requiredWhen('delivery_method', '=', 'shipping')
])
}

The requiredWhen rule support the following operators.

  • in accepts an array of values
  • notIn accepts an array of values
  • = accepts a literal value
  • != accepts a literal value
  • > accepts a numeric value
  • < accepts a numeric value
  • >= accepts a numeric value
  • <= accepts a numeric value