4.1.4 Regras de validação incorporadas por padrão
A classe de validação no CakePHP contém muitas regras de validação que podem fazer da validação de dados para o model muito mais simples. Essa classe contém as mais-usadas técnicas, assim você não precisará reescrevêlas. Abaixo, você irá encontrar uma lista completa de todas as regras e seus respectivos exemplos.
4.1.4.1 alphaNumeric
Os dados do campo devem conter apenas letras e números.
var $validate = array(
'login' => array(
'rule' => 'alphaNumeric',
'message' => 'Nomes de usuário devem conter apenas letras e números.'
)
);
var $validate = array('login' => array('rule' => 'alphaNumeric','message' => 'Nomes de usuário devem conter apenas letras e números.'));
4.1.4.2 between
O comprimento dos dados do campo deve estar entre os números especificados (inclusive). Tanto o valor mínimo quanto o máximo devem ser especificados.
var $validate = array(
'password' => array(
'rule' => array('between', 5, 15),
'message' => 'Senhas deve ter entre 5 e 15 caracteres.'
)
);
var $validate = array('password' => array('rule' => array('between', 5, 15),'message' => 'Senhas deve ter entre 5 e 15 caracteres.'));
4.1.4.3 blank
Essa regra é usada para ter certeza de que o campo foi deixado em branco ou apenas caracteres de espaço estão presentes nele. São considerados caracteres em branco: espaço, tab, carriage return, e newline.
var $validate = array(
'id' => array(
'rule' => 'blank',
'on' => 'create'
)
);
var $validate = array('id' => array('rule' => 'blank','on' => 'create'));
4.1.4.4 boolean
Os dados para o campo devem ser um valor booleano. Valores válidos são true ou false, inteiros 0 ou 1 ou strings '0' ou '1'.
var $validate = array(
'myCheckbox' => array(
'rule' => array('boolean'),
'message' => 'Valor incorreto para myCheckbox'
)
);
var $validate = array('myCheckbox' => array('rule' => array('boolean'),'message' => 'Valor incorreto para myCheckbox'));
4.1.4.5 cc
The original text for this section has changed since it was translated. Please help resolve this difference. You can:
Essa regra é usada para checar quando o campo é um cartão de crédito válido. Ele aceita três parâmetros: 'type', 'deep' e 'regex'.
À chave 'type' podem ser atribuidos os valores 'fast', 'all' ou qualquer um dos seguintes:
- bankcard
- diners
- disc
- electron
- enroute
- jcb
- maestro
- mc
- solo
- switch
- visa
- voyager
Se a chave 'type' for setada como 'fast', ela validará o número do cartão de crédito entre os cartões mais usados. Se o valor da chave 'type' for 'all' ele irá validar entre todos os cartões de crédito. Você também pode setar o 'type' como uma array de tipos de cartão que você queira validar.
À chave 'deep' deve se dar um valor booleano. Se for setada como true, a validação checará o cartão de crédito com o algoritmo Luhn (http://en.wikipedia.org/wiki/Luhn_algorithm). O padrão é false.
A chave 'regex' lhe permite inserir sua própria expressão regular que irá ser usada para validar o cartão de crédito.
var $validate = array(
'ccnumber' => array(
'rule' => array('cc', array('visa', 'maestro'), false, null),
'message' => 'O número do cartão de crédito que você forneceu é inválido.'
)
);
var $validate = array('ccnumber' => array('rule' => array('cc', array('visa', 'maestro'), false, null),'message' => 'O número do cartão de crédito que você forneceu é inválido.'));
4.1.4.6 comparison
O 'comparison' é usado para comparar valores numéricos. Ele suporta "is greater", "is less", "greater or equal", "less or equal", "equal to", and "not equal". Alguns exemplos abaixo:
var $validate = array(
'age' => array(
'rule' => array('comparison', '>=', 18),
'message' => 'Você deve ter no mínimo 18 anos.'
)
);
var $validate = array(
'age' => array(
'rule' => array('comparison', 'greater or equal', 18),
'message' => 'Você deve ter no mínimo 18 anos.'
)
);
var $validate = array('age' => array('rule' => array('comparison', '>=', 18),'message' => 'Você deve ter no mínimo 18 anos.'));var $validate = array('age' => array('rule' => array('comparison', 'greater or equal', 18),'message' => 'Você deve ter no mínimo 18 anos.'));
4.1.4.7 date
Essa regra assegura que a data enviada seja válida. Um único parâmetro (que pode ser um array) pode ser passado para validar os dados fornecidos. O valor desse parâmetro pode ser um dos seguitnes:
- 'dmy' ex: 27-12-2006 or 27-12-06 (os separadores podem ser espaço, ponto, traço e barra comum)
- 'mdy' ex: 12-27-2006 or 12-27-06 (os separadores podem ser espaço, ponto, traço e barra comum)
- 'ymd' ex: 2006-12-27 or 06-12-27 (os separadores podem ser espaço, ponto, traço e barra comum)
- 'dMy' ex: 27 Dezembro 2006 ou 27 Dezembro 2006
- 'Mdy' ex: Dezembro 27, 2006 or Dez 27, 2006 (vírgula é opcional)
- 'My' ex: (Dezembro 2006 ou Dez 2006)
- 'my' ex: 12/2006 ou 12/06 (os separadores podem ser espaço, ponto, traço e barra comum)
Se nenhuma chave for fornecida, a chave padrão será 'ymd'.
var $validate = array(
'born' => array(
'rule' => 'date',
'message' => 'Insira uma data válida no formato AA-MM-DD.',
'allowEmpty' => true
)
);
var $validate = array('born' => array('rule' => 'date','message' => 'Insira uma data válida no formato AA-MM-DD.','allowEmpty' => true));
Apesar dos bancos de dados requerirem um certo formato de data, você deve fazer o trabalho pesado e tentar convertê-los, ao invés de forçar os usuários a inserirem a data nesse formato. Quanto mais você puder facilitar para os usuários, melhor.
4.1.4.8 decimal
Esta regra garante que o dado seja um número decimal válido. Um parâmetro pode ser passado para especificar a quantidade de casas decimais após o ponto. Se nenhum parâmetro for passado, o dado será validado como um número científico de ponto flutuante, que fará a validação falhar se nenhuma dígito for encontrado após o ponto decimal.
var $validate = array(
'price' => array(
'rule' => array('decimal', 2)
)
);
var $validate = array('price' => array('rule' => array('decimal', 2)));
4.1.4.9 email
Checa se é um e-mail válido. Passando um valor booleano true como segundo parâmetro dessa regra fará com que tente verificar o host para o endereço do e-mail.
var $validate = array('email' => array('rule' => 'email'));
var $validate = array(
'email' => array(
'rule' => array('email', true),
'message' => 'Insira um email válido.'
)
);
var $validate = array('email' => array('rule' => 'email'));var $validate = array('email' => array('rule' => array('email', true),'message' => 'Insira um email válido.'));
4.1.4.10 equalTo
Essa regra vai garantir que o valor é igual e é do mesmo tipo do valor dado.
var $validate = array(
'food' => array(
'rule' => array('equalTo', 'cake'),
'message' => 'Esse valor deve ser igual a cake'
)
);
var $validate = array('food' => array('rule' => array('equalTo', 'cake'),'message' => 'Esse valor deve ser igual a cake'));
4.1.4.11 extension
The original text for this section has changed since it was translated. Please help resolve this difference. You can:
Essa regra verifica se é uma extensão válida de arquivo, como .jpg ou .png. Permite múltiplas extensões se colocadas na forma de array.
var $validate = array(
'image' => array(
'rule' => array('extension', array('gif', 'jpeg', 'png', 'jpg'),
'message' => 'Por favor, informe uma imagem válida.'
)
);
var $validate = array('image' => array('rule' => array('extension', array('gif', 'jpeg', 'png', 'jpg'),'message' => 'Por favor, informe uma imagem válida.'));
4.1.4.12 file
The original text for this section has changed since it was translated. Please help resolve this difference. You can:
Esta seção precisa ser reescrita. Se você tiver uma ideia sobre o que deve constar aqui, por favor, utilize os links ao lado e submeta sua sugestão!
4.1.4.13 ip
Checa se um endereço IP (IPv4) válido foi enviado.
var $validate = array(
'clientip' => array(
'rule' => 'ip',
'message' => 'Por favor, insira um endereço IP válido.'
)
);
var $validate = array('clientip' => array('rule' => 'ip','message' => 'Por favor, insira um endereço IP válido.'));
4.1.4.14 isUnique
O valor do campo deve ser único, não podendo ser usado por nenhum outro registro.
var $validate = array(
'login' => array(
'rule' => 'isUnique',
'message' => 'O nome de usuário já está em uso.'
)
);
var $validate = array('login' => array('rule' => 'isUnique','message' => 'O nome de usuário já está em uso.'));
4.1.4.15 minLength
The original text for this section has changed since it was translated. Please help resolve this difference. You can:
Essa regra assegura que os dados enviados possuem o comprimento mínimo requerido.
var $validate = array(
'login' => array(
'rule' => array('minLength', '8'),
'message' => 'Nomes de usuário deve possuir no mínimo 8 caracteres.'
)
);
var $validate = array('login' => array('rule' => array('minLength', '8'),'message' => 'Nomes de usuário deve possuir no mínimo 8 caracteres.'));
4.1.4.16 maxLength
The original text for this section has changed since it was translated. Please help resolve this difference. You can:
Essa regra assegura que o valor tem o mínimo de caracteres requerido.
var $validate = array(
'login' => array(
'rule' => array('maxLength', '15'),
'message' => 'Nomes de usuário não podem ter mais que 15 caracteres.'
)
);
var $validate = array('login' => array('rule' => array('maxLength', '15'),'message' => 'Nomes de usuário não podem ter mais que 15 caracteres.'));
4.1.4.17 money
The original text for this section has changed since it was translated. Please help resolve this difference. You can:
Essa regra vai assegurar que o valor tem uma quantia monetária válida.
O segundo parâmetro define onde o símbolo está localizado (left/right).
var $validate = array(
'amount' => array(
'rule' => array('money', 'left'),
'message' => 'Por favor, informe um valor com uma quantia monetária'
)
);
var $validate = array('amount' => array('rule' => array('money', 'left'),'message' => 'Por favor, informe um valor com uma quantia monetária'));
4.1.4.18 multiple
Use esta regra para validar uma entrada de seleção múltipla. Ela suporta os parâmetros "in", "max" e "min".
var $validate = array(
'multiple' => array(
'rule' => array('multiple', array('in' => array('do', 'ray', 'me', 'fa', 'so', 'la', 'ti'), 'min' => 1, 'max' => 3)),
'message' => 'Por favor, selecione uma, duas ou três opções'
)
);
var $validate = array('multiple' => array('rule' => array('multiple', array('in' => array('do', 'ray', 'me', 'fa', 'so', 'la', 'ti'), 'min' => 1, 'max' => 3)),'message' => 'Por favor, selecione uma, duas ou três opções'));
4.1.4.19 inList
Essa regra vai assegurar que é um valor permitido. Ele precisa de um array de valores. O campo é válido se o valor do campo for um dos valores do array.
var $validate = array(
'function' => array(
'allowedChoice' => array(
'rule' => array('inList', array('Foo', 'Bar')),
'message' => 'Informe o valor Foo ou Bar.'
)
)
);
var $validate = array('function' => array('allowedChoice' => array('rule' => array('inList', array('Foo', 'Bar')),'message' => 'Informe o valor Foo ou Bar.')));
4.1.4.20 numeric
Verifica se o valor informado é um número válido.
var $validate = array(
'cars' => array(
'rule' => 'numeric',
'message' => 'Por favor, informe o número de carros.'
)
);
var $validate = array('cars' => array('rule' => 'numeric','message' => 'Por favor, informe o número de carros.'));
4.1.4.21 notEmpty
A regra básica para garantir que um campo não seja vazio.
var $validate = array(
'title' => array(
'rule' => 'notEmpty',
'message' => 'Este campo não pode ser deixado em branco'
)
);
var $validate = array('title' => array('rule' => 'notEmpty','message' => 'Este campo não pode ser deixado em branco'));
Não use esta regra para uma entrada de seleção múltipla, pois do contrário isto vai causar um erro. Ao invés disso, utilize "multiple".
4.1.4.22 phone
Valida números de telefones dos Estados Unidos (us). Se você quer validar um número de telefone que não seja dos Estados Unidos, você pode fornecer uma expressão regular no segundo parâmetro.
var $validate = array(
'phone' => array(
'rule' => array('phone', null, 'us')
)
);
var $validate = array('phone' => array('rule' => array('phone', null, 'us')));
4.1.4.23 postal
Postal é usado para validar códigos postais dos Estados Unidos (us), Canadá (ca), Reino Unido (uk), Itália (it), Alemanha (de) e Bélgica (be). Para outro formato de código postal, você pode fornecer uma expressão regular como segundo parâmetro.
var $validate = array(
'zipcode' => array(
'rule' => array('postal', null, 'us')
)
);
var $validate = array('zipcode' => array('rule' => array('postal', null, 'us')));
4.1.4.24 range
The original text for this section has changed since it was translated. Please help resolve this difference. You can:
Essa regra garante que o valor está dentro da faixa númerica. Se nenhuma faixa é fornecidade, a regra vai verificar se o valor é um número finito válido na plataforma atual.
var $validate = array(
'number' => array(
'rule' => array('range', 0, 10),
'message' => 'Por favor coloque um número entre 0 e 10'
)
);
var $validate = array('number' => array('rule' => array('range', 0, 10),'message' => 'Por favor coloque um número entre 0 e 10'));
4.1.4.25 ssn
SSN valida números de segurança social dos Estados Unidos (us), Dinamarca (dk) e dos Países Baixos (nl). Para outro formato de número de segurança social, você pode fornecer uma expressão regular.
var $validate = array(
'ssn' => array(
'rule' => array('ssn', null, 'us')
)
);
var $validate = array('ssn' => array('rule' => array('ssn', null, 'us')));
4.1.4.26 url
The original text for this section has changed since it was translated. Please help resolve this difference. You can:
Essa regra verificar por formatos de URL válidos. Suporta http(s), ftp(s), file, news, e protocolos gopher.
var $validate = array(
'website' => array(
'rule' => 'url'
)
);
var $validate = array('website' => array('rule' => 'url'));
