Logica de validacion

11 views
Skip to first unread message

intel1981

unread,
Nov 11, 2010, 5:41:41 PM11/11/10
to Kumbia Enterprise Framework
Voy a exponer el codigo completo de mi controlador :
/apps/default/controller/ciclos_controller.php el cual esta disponible
en este enlace: http://pastebin.com/MgGbD0f2

y el codigo de mi modelo:
/apps/default/models/ciclo.php el cual esta disponible en este enlace:
http://pastebin.com/LYQuwfjt

El codigo corresponde a un modulo que sirve para crear nuevos ciclos
escolares, como por ejemplo: 2007-2008, 2008-2009....

Quisiera realizar la validacion de datos en dos partes:

Primera parte:
1) Que el año inicial no sea mayor al año final
2) Que el año inicial y el año final no sean iguales.

Segunda parte:
1) Que los datos introducidos sean del tipo correcto. (Enteros del 0
al 9)
2) Si el usuario envia uno o mas TextFields en blanco validar el error
y mostrar el mensaje correspondiente.

Ahora mis dudas:

A)
La primera parte de la validacion, ya la hice, como pueden ver en el
codigo del modelo y el controlador. Ahora bien, no me queda claro el
orden de las validaciones (si primero es la primera parte, luego la
segunda, o, la segunda y luego la primera, o, las dos al mismo
tiempo).

B)
Lo que yo quisiera saber es que por ejemplo, si el usuario envia un
cuadro de texto con caracteres, como validar ese valor, capturar el
campo y mostrar un texto personalizado de error.

C)
¿ Existe una mejor manera y mas practica de realizar las validaciones?
A lo que me refiero, es ¿ como usar las herramientas que proporciona
el framework para obtener un codigo solido y portable?

Quiero aclarar que he estado leyendo el manual del framework, pero
hasta ahora no logro realizar una buena validacion de datos.

De antemano gracias por la ayuda que me puedan brindar.

Y de nuevo gracias por su tiempo y sus respuestas.

Andres Felipe Gutierrez

unread,
Nov 11, 2010, 6:03:54 PM11/11/10
to kef-s...@googlegroups.com
Esto:

  1. //Establecer el nivel de renderizacion. Pág.: 276
  2.                 View::setRenderLevel(0);
  3.                
  4.                 //Respuestas HTTP de Controladores. Pág.: 74
  5.                 $response = ControllerResponse::getInstance();         
  6.                
  7.                 //Establecer el tipo de salida de la Petición. Pág. 75
  8.                 $response->setResponseType("view");
Puede ser cambiado solo por:

$this->setResponse('json');

y

$this->renderText($this->jsonEncode(array(...

puede ser cambiado por:

return array(...

Los datos se deben filtrar usando el segundo parámetro de getPostParam o getQueryParam, que es un filtro:


//Recibir enteros
$anioInicial = $this
->getPostParam("ANIO_INICIAL", "int");

//Recibir fechas
$fecha = $this->getPostParam("fecha", "date");

//Recibir numeros con decimales
$fecha = $this->getPostParam("numero", "double");

Le recomiendo también usar variables en minúsculas al igual que los campos, no es no se pueda, pero las mayúsculas es una convención para constantes.

Aquí hay ejemplos de ello:
http://www.loudertechnology.com/site/docs/show/componente-controller.phtml

Aquí hay ejemplos para filtrar usando Filter:
http://www.loudertechnology.com/site/docs/show/componente-filter.phtml

La validación está bien en el modelo, ahí debe ir toda la lógica de dominio.

2010/11/11 intel1981 <inte...@gmail.com>
Reply all
Reply to author
Forward
0 new messages