X

Validando formularios en CakePHP

Una parte muy importante en el desarrollo de nuestras aplicaciones es la validación de los formularios ya que con esto nos aseguramos de mantener una data limpia y que pueda ser utilizada para realizar cualquier análisis, ahora bien en este pequeño tutorial de CakePHP vamos a mostrar como se comporta la validación de nuestros modelos en CakePHP.

Ahora bien para comenzar debemos tener algo bien presente en como funciona CakePHP con su metodología Modelo-Vista-Controlador ya que debemos estar claro que nuestras validaciones en si son validaciones a campos de nuestro Modelo, que a su vez son campos de nuestras tablas en la mayoría de la veces, también puede ser campos que necesitamos validar para luego asignar a algún campo de nuestra base de datos.

 

Validaciones en nuestro Modelo

 

El primer paso para la validación de datos es la creación de las reglas de validación en el Modelo. Para hacerlo, utilice el arreglo Model :: validate en la definición del Modelo, por ejemplo:

class User extends AppModel {
   public $validate = array();
}

CakePHP tiene muchas reglas de validación y usarlas puede ser bastante simple. Algunas de las reglas incluidas permiten a verificar el formato de los emails, URLs, y números de tarjeta de crédito – las cubriremos en detalle más adelante.

Aquí hay un ejemplo de validación más complejo que aprovecha algunas de estas reglas de validación incorporadas:

class User extends AppModel {
public $validate = array(
'login' => array(
'alphaNumeric' => array(
'rule' => 'alphaNumeric',
'required' => true,
'message' => 'Letters and numbers only'
),
'between' => array(
'rule' => array('between', 5, 15),
'message' => 'Between 5 to 15 characters'
)
),
'password' => array(
'rule' => array('minLength', '8'),
'message' => 'Minimum 8 characters long'
),
'email' => 'email',
'born' => array(
'rule' => 'date',
'message' => 'Enter a valid date',
'allowEmpty' => true
)
);
}

 

Validaciones en nuestro Controlador

 

Mientras que normalmente se acaba de utilizar el método save del modelo, puede haber ocasiones en las que desea validar los datos sin guardar. Por ejemplo, puede que desee para mostrar un poco de información adicional al usuario antes de que realmente guardar los datos en la base de datos.

En primer lugar, establecer los datos al modelo:

$this->User->set($this->request->data);

Luego, para comprobar si los datos son validos, utilice el método validates al modelo, que devolverá verdadero si se valida y false si no lo hace:

if ($this->User->validates()) {
// son validas las validaciones
} else {
// una o mas validaciones no son validas
$errors = $this->User->validationErrors;
}

Para obtener mayor detalle puedes entrar en:

http://book.cakephp.org/2.0/en/models/data-validation.html
http://book.cakephp.org/2.0/en/models/data-validation/validating-data-from-the-controller.html

Esperamos que puedas compartir tus dudas con nosotros y así poder solventarlas.

Artículos relacionados