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.
in
aceita uma matriz de valoresnotIn
aceita 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