14/01/2010

Yii : Utilização pratica das Validações (Validators)

A Yii tem uma basta gama de ferramentas que permite validar a correcta introdução de dados por parte do utilizador , fica aqui alguns exemplos partidos da sua utilização:
Verifica se o campo 'nome' é único ou seja não é repetido
array('room', 'unique'), 
Verifica se o campo 'nome' tem no máximo 45 caracteres
array('nome','length','max'=>45),
Verifica se o campo 'nome' e 'morada' estão presentes
array('nome, morada', 'required'),
Valida se o campo 'id_categoria' está presente na tabela 'categoria'(model) no campo 'id'
array('id_categoria','exist','className'=>'categoria','attributeName'=>'id'),
Verifica se o campo 'id_categoria' é um numero inteiro
array('id_categoria', 'numerical', 'integerOnly'=>true), 
Verifica se o campo 'sexo' está alguns dos valores  'M' ou 'F'
array('sexo','in','range'=>array('M','F')), 
Verifica se o campo 'email' tem uma estrutura valida com um Endereço de Correio Electrónico(Email)
array('email','email'), 
Verifica se o campo 'fotografia' é um ficheiro do tipo (jpg, gif, png) sendo que este pode não existir
array('fotografia','file','types'=>'jpg, gif, png','allowEmpty'=>true), 
Quando da verificação o campo 'nib' é chamada a função 'isValidNIB' presente no model
array('nib','isValidNIB'),
function isValidNIB($attribute,$params) 
{    // Em caso de Erro :
$this->addError($attribute,$message); 
} 

Valida se o campo 'data' é do tipo data e com o formato ano(4 dígitos) - mes(2 dígitos) e dia(2 dígitos) 'yyyy-MM-dd'

array('data','type','type'=>'date','dateFormat'=>'yyyy-MM-dd','message'=>' {attribute} tem de ser uma data com o formato aaaa-mm-dd'), 

Informação complementar:


Validators (Versão da Yii) existentes:
  • CBooleanValidator,  (1.0.10)
  • CCaptchaValidator,  (1.0)
  • CCompareValidator,  (1.0)
  • CDefaultValueValidator, (1.0.2)
  • CEmailValidator, (1.0)
  • CExistValidator, (1.0.4)
  • CFileValidator, (1.0)
  • CFilterValidator, (1.0)
  • CInlineValidator, (1.0)
  • CNumberValidator, (1.0)
  • CRangeValidator, (1.0)
  • CRegularExpressionValidator, (1.0)
  • CRequiredValidator, (1.0)
  • CStringValidator, (1.0)
  • CTypeValidator, (1.0)
  • CUniqueValidator, (1.0)
  • CUrlValidator (1.0)
  • Guia de utilização da Yii
  • Cookbook

Sem comentários: