Validadores do Doctrine (validators)
Neste post mostrarei os validadores presentes no Doctrine (usei a versão 1.2.3). O Doctrine facilita a validação dos dados, bastando apenas definir os validadores para cada atributo ao invés de fazer vários malabarismos com funções do PHP e expressões regulares. Você pode definir os validadores na classe que estende a classe base. Dessa maneira, você pode gerar o model novamente e suas alterações não serão perdidas. Primeiro listarei os validadores e ao final mostrarei alguns exemplos. Vamos lá.
Importante
Para que seus dados sejam validados, cheque se seu “bootstrap.php” contém a diretiva abaixo. Caso contrário, seus dados não serão validados.
notnull
Garante que o valor não seja nulo na aplicação e no banco de dados.
Válido: teste, jonnas Inválido: valores nulos
Checa se o valor é um endereço de email válido.
Válido: contato@email.net Inválido: fulano!#@server
notblank
Este validador é semelhante ao validador notnull, exceto que além de não validar valores nulos, também não valida strings vazias.
Válido: teste, jonnas Inválido: valores nulos, “
nospace
Checa se o valor não contém espaços.
Válido: JonnasFonini Inválido: Jonnas Fonini
past
Checa se o valor é uma data que já ocorreu, o dia de ontem, por exemplo.
Válido: Sendo hoje 14/09/2010, 01/01/2010 é válida Inválido: Sendo hoje 14/09/2010, a mesma e posteriores são inválidas
future
Checa se o valor é uma data que ainda não aconteceu, amanhã, por exemplo.
Válido: Sendo hoje 14/09/2010, 15/09/2010 é válida Inválido: Sendo hoje 14/09/2010, a mesma e anteriores são inválidas
minlength
Checa se o valor passado tem o tamanho mínimo necessário.
Válido: abcdef, abcdefg Inválido: abc
ip
Checa se o valor passado é um endereço IP válido.
Válido: 192.168.250.222, 201.10.34.21 Inválido: 345.10.10.290
htmlcolor
Checa se o valor passado é uma cor HTML em hexadecimal.
Válido: #000FFF, FF0000 Inválido: #GGG111, #FFF (cores abreviadas são inválidas)
range
Checa se o valor numérico está contido no intervalo especificado.
Válido: 19, 50, 69 Inválido: 10, 18, 70
unique
Checa se o valor já existe no banco de dados.
regexp
Checa se o valor casa com a expressão regular passada.
Válido: flex Inválido: flex4
creditcard
Checa se o valor é um número de cartão de crédito válido.
Válido: Cartões Visa, Master Card, American Express, Discover e Diners Inválido: Outras bandeiras, exceto as citadas acima
readonly
Evita que o valor de uma coluna da tabela seja alterado.
unsigned
Checa se o valor númerico passado possui sinal, de menos, por exemplo.
Válido: 70, 100 Inválido: -20
usstate
Checa se a string passada é a sigla válida de um estado americano. Confira a lista completa aqui.
Válido: AL, CA Inválido: QW
country
Checa se a string passada é a sigla válida de um país. Confira a lista completa aqui.
Válido: br, BR, ar Inválido: xx
Grande abraço e até a próxima!