zeanwork.com.br  >>  Documentação  >>  Models  >>  Validações
Validações
No desenvolvimento de aplicações web, a validação no lado do servidor é de grande importância, pois em alguns casos, apenas desativando o javascript podemos fazer grandes estragos em algumas aplicações. Para que isso não venha acontecer, não devemos confiar apenas no javascript.
Sim, podemos ter validações em javascript! Porem não se deve depender somente delas, devemos ter validações no lado do servidor antes de executarmos determinadas ações no mesmo. Por exemplo: temos uma página web que realiza cadastro de clientes em um comércio eletrônico. Quem geralmente preenche este cadastro é o próprio cliente, por isso devemos ter um cuidado maior. As informações mais comuns nestes cadastros são: Nome, Sobrenome, E-mail, Repetir e-mail, Senha e Repetir senha. Nesta página uma das validações existente é, verificar se o e-mail foi corretamente informado e se o campo repetir e-mail corresponde ao campo e-mail. Também temos o mesmo caso com o campo senha e repetir senha. Agora imagine que estas validações foram somente feitas pelo javascript e que por algum motivo o javascript do browser estava desabilitado. Se os dados informados estiverem corretos não iremos ter problemas, porem se o usuário esqueceu de um campo ou preencheu uma informação incorreta poderemos ter vários problemas. Possivelmente o usuário não se sentirá seguro em seu aplicativo e desistirá da compra, além deste problema temos outro, que é a integridade das informações no banco de dados.
Este é só um exemplo de problema que pode acontecer em aplicações web. Se temos validações que rodam no lado do servidor e não somente no lado do cliente, teremos mas segurança nas aplicações web.
Bom, é por isso que o zeanwork tem esta opção de validação.


Definindo a validação

Para definir a validação, devemos utilizar o método Model::validates().
O valor a ser definido é uma array, a chave desta array deve ser o nome do campo que queremos fazer a validação, seguindo mais uma array com informações para a validação e mensagem de erro.

Veja exemplo:
$this->users->validates(array(
			  'name' => array(
					  'message' => 'Favor preencher o campo nome'
					, 'rule' => 'notEmpty'
					, 'required' => true
					)
			, 'email' => array(
					  'message' => 'Favor preencher corretamente o e-mail'
					, 'rule' => 'email'
					)
			, 'age' => array(
					  array(
						  'message' => 'Favor preencher a idade'
						, 'rule' => 'notEmpty'
						)
					, array(
						  'message' => 'Você deve ter no minimo 18 anos e no máximo 60 anos'
						, 'rule' => array('between' => array(18, 60))
						)
					)
			)
		);

Executando a validação

Veja os métodos disponíveis para executarmos a validação:
Model::validate()
É com este método que executamos a validação.

Parâmetros:
array $data
Dados a serem validados.


Retorno:
boolean
True se esta tudo certo e false se tiver erros.


Veja exemplo:
$this->users->validate($this->input->post());



Rules disponíveis
Rules (regras) são métodos que o Zeanwork chama para executar a validação em um determinado caso.

Veja os nomes dos métodos disponíveis:
alphanumeric
between
blank
boolean
creditCard
comparison
regex
date
decimal
email
equal
ip
minLength
maxLength
inList
numeric
notEmpty
time
url

Nota: Os métodos aqui apresentados são da classe Validation, para saber mais sobre estes métodos busque informações nesta classe.


Criando seus rules
Você também pode criar suas próprias regras, que serão chamadas automáticamente por estes métodos de validação da classe Model.
Você deve criar estas regras no seu model.

Veja exemplo:
class Users extends AppModel {
	public function userExist($value){
		//Procedimento para ver se o usuário informado já existe.
	}
}

Nota: Estas regras sempre devem retornar um valor boleano (boolean). Em caso de erro deve retornar false, se não, deve retornar true. Por exemplo: Se o usuário existir retornará false, caso contrário, true.