requiredIfRules
As regras requiredIf permitem que você marque um campo como obrigatório quando uma determinada condição for atendida. Ao usar as regras requiredIf, você deve marcar o campo como opcional primeiro.
requiredIfExists
Valida o campo para estar presente quando o outro campo estiver presente. Por exemplo: O usuário deve preencher o endereço de entrega quando optar pela entrega.
NOTA
O oposto desta regra é requiredIfNotExists
NOTA
Se o parâmetro do campo começar com /, ele será pesquisado a partir da raiz do objeto.
import { schema, rules } from '@ioc:Adonis/Core/Validator'
{
address: schema.string.optional([
rules.requiredIfExists('needs_delivery')
])
}requiredIfExistsAll
O mesmo que a regra requiredIf, mas aqui você pode definir mais de um campo para existir para que o campo seja obrigatório.
NOTA
O oposto desta regra é requiredIfNotExistsAll
NOTA
Se o parâmetro de campo começar com /, ele será pesquisado a partir da raiz do objeto.
import { schema, rules } from '@ioc:Adonis/Core/Validator'
{
tax_id: schema.string.optional([
rules.requiredIfExistsAll(['owns_a_car', 'owns_a_house'])
])
}requiredIfExistsAny
Marque o campo atual como obrigatório, quando qualquer um dos outros campos existir e contiver algum valor.
NOTA
O oposto desta regra é requiredIfNotExistsAny
NOTA
Se o parâmetro de campo começar com /, ele será pesquisado a partir da raiz do objeto.
import { schema, rules } from '@ioc:Adonis/Core/Validator'
{
password: schema.string.optional([
rules.requiredIfExistsAny(['username', 'email'])
])
}requiredWhen
Marque o campo atual como obrigatório quando o valor do outro campo corresponder a um determinado critério.
NOTA
Se o parâmetro de campo começar com /, ele será pesquisado a partir da raiz do objeto.
import { schema, rules } from '@ioc:Adonis/Core/Validator'
{
address: schema.string.optional([
rules.requiredWhen('delivery_method', '=', 'shipping')
])
}A regra requiredWhen suporta os seguintes operadores.
inaceita uma matriz de valoresnotInaceita uma matriz de valores=aceita um valor literal!=aceita um valor literal>aceita um valor numérico<aceita um valor numérico>=aceita um valor numérico<=aceita um valor numérico