Welcome to the Cookbook

loading...

4.1.6 Validando Valores no Controle

The original text for this section has changed since it was translated. Please help resolve this difference. You can:

More information about translations

Enquanto normalmente você apenas usa o método save do model, talvez as vezes você queira validar os valores sem salva-los. Por exemplo, talvez você queira mostrar alguma informação extra para o usuário antes de salvar os valores no banco de dados. Validar estes valores requer um processo um pouco diferente do que simplesmente salva-los.

Primeiro, defina os valores no model.

$this->ModelName->set( $this->data );
  1. $this->ModelName->set( $this->data );

Então verifique se os valores validaram, use o método validates() do model, ele irá retornar true se validar e false se não validar.

if ($this->ModelName->validates()) {
	// lógica de validado
} else {
	// lógica de não validado
}
  1. if ($this->ModelName->validates()) {
  2. // lógica de validado
  3. } else {
  4. // lógica de não validado
  5. }

O método validates() chama o método invalidFields() para preencher o validationErrors no model. O método invalidFields() também retorna os resultados.

$errors = $this->ModelName->invalidFields(); // contem o array validationErrors
  1. $errors = $this->ModelName->invalidFields(); // contem o array validationErrors

É importante notar que os valores têm que estar definidos no model antes para poderem ser validados. É diferente do método save() pois permite que as informações sejam passados como parâmetro.