Validaciones
De CidesaWiki
(15 ediciones intermedias no se muestran.) | |||
Línea 1: | Línea 1: | ||
- | Para realizar las validaciones a una forma debemos | + | Para realizar las validaciones a una forma debemos: En caso de módulos generados por el propel-init-admin: Crear una carpeta llamada validate y dentro de ella crear un archivo llamado edit.yml y para otro caso módulos generados con el init-module la carpeta validate ya viene por defecto solo debemos crear el archivo .yml debe llamarse a la accion que se va a ejecutar ejemplo edit. |
- | + | ||
- | + | [[Imagen:Muestra.JPG]] | |
- | [[Imagen: | + | |
- | + | ||
El archivo edit.yml contiene lo siguiente: '''methods''' se declara el metodo post con los campos que se van a validar al momento de guardar. '''names''' se coloca cada uno de los campos con sus mensajes(si tienen y si son requeridos o no), y llamamos el validators respectivo al campo. Y al final creamos los validators segun las validaciones que tenga que hacersele a los campos. | El archivo edit.yml contiene lo siguiente: '''methods''' se declara el metodo post con los campos que se van a validar al momento de guardar. '''names''' se coloca cada uno de los campos con sus mensajes(si tienen y si son requeridos o no), y llamamos el validators respectivo al campo. Y al final creamos los validators segun las validaciones que tenga que hacersele a los campos. | ||
Línea 23: | Línea 22: | ||
caregart{codart}: | caregart{codart}: | ||
required: Yes | required: Yes | ||
- | required_msg: El Código del Articulo no puedo estar en Blanco | + | required_msg: El Código del Articulo no puedo estar en Blanco |
+ | validators: MyStringValidator6 | ||
caregart{desart}: | caregart{desart}: | ||
Línea 69: | Línea 69: | ||
max: 250 | max: 250 | ||
max_error: La Descripción no puede pasar mas de 250 caracteres | max_error: La Descripción no puede pasar mas de 250 caracteres | ||
+ | |||
+ | MyStringValidator6: | ||
+ | class: sfStringValidator | ||
+ | param: | ||
+ | min: 1 | ||
+ | min_error: La Descripción no puede tener menos de 2 caracteres | ||
MyString2Validator: | MyString2Validator: | ||
Línea 81: | Línea 87: | ||
class: sfStringValidator | class: sfStringValidator | ||
param: | param: | ||
- | min: | + | min: 0 |
min_error: La Unidad de Medida no puede tener menos de 2 caracteres | min_error: La Unidad de Medida no puede tener menos de 2 caracteres | ||
max: | max: | ||
Línea 89: | Línea 95: | ||
class: sfStringValidator | class: sfStringValidator | ||
param: | param: | ||
- | min: | + | min: 0 |
min_error: La Unidad Alternativa no puede tener menos de 2 caracteres | min_error: La Unidad Alternativa no puede tener menos de 2 caracteres | ||
max: 15 | max: 15 | ||
Línea 97: | Línea 103: | ||
class: sfStringValidator | class: sfStringValidator | ||
param: | param: | ||
- | min: | + | min: 0 |
min_error: La Relación no puede tener menos de 2 caracteres | min_error: La Relación no puede tener menos de 2 caracteres | ||
max: 25 | max: 25 | ||
Línea 112: | Línea 118: | ||
max: 9999999999.99 | max: 9999999999.99 | ||
max_error: El valor debe contener maximo 9999999999.99 | max_error: El valor debe contener maximo 9999999999.99 | ||
- | |||
</pre> | </pre> | ||
Línea 118: | Línea 123: | ||
En este ejemplo, se encuentran algunos de los Estándares de Validación(sfNumberValidator y sfStringValidator) de symfony. Los demas se encuentra en capitulo 10 y el codigo de lo que hace en cada uno de ellos, se encuentra en la siguiente dirección C:\AppServ\php5\PEAR\symfony\validator. | En este ejemplo, se encuentran algunos de los Estándares de Validación(sfNumberValidator y sfStringValidator) de symfony. Los demas se encuentra en capitulo 10 y el codigo de lo que hace en cada uno de ellos, se encuentra en la siguiente dirección C:\AppServ\php5\PEAR\symfony\validator. | ||
- | Nota: Para agregar otras validaciones del Negocio crear una funcion ValidateEdit(Modulo Generados con propel-init-admin) en el Actions.class.php está se ejecutara al mismo tiempo que las otras(al Guardar). | + | Nota: Para agregar otras validaciones del Negocio crear una funcion ValidateEdit(Modulo Generados con propel-init-admin) en el Actions.class.php está se ejecutara al mismo tiempo que las otras(al Guardar) y Modificar la función handleErrorEdit.Ejemplo de página Almregart. |
<pre> | <pre> | ||
- | + | private static $coderror=-1; | |
- | + | ||
- | public function validateEdit() | + | public function validateEdit() |
- | + | { | |
- | + | if($this->getRequest()->getMethod() == sfRequest::POST) | |
- | } | + | { |
+ | $this->caregart = $this->getCaregartOrCreate(); | ||
+ | $this->updateCaregartFromRequest(); | ||
+ | |||
+ | self::$coderror=Articulos::validarAlmregart($this->caregart); | ||
+ | if (self::$coderror<>-1) | ||
+ | { | ||
+ | return false; | ||
+ | }else return true; | ||
+ | }else return true; | ||
+ | } | ||
public function handleErrorEdit() | public function handleErrorEdit() | ||
- | + | { | |
- | + | $this->preExecute(); | |
- | + | $this->caregart = $this->getCaregartOrCreate(); | |
- | + | $this->updateCaregartFromRequest(); | |
- | + | $this->labels = $this->getLabels(); | |
- | + | ||
- | + | if(!$this->validateEdit()) | |
- | + | { | |
- | $this-> | + | $err = Herramientas::obtenerMensajeError(self::$coderror); |
- | + | $this->getRequest()->setError('caregart{codart}',$err); | |
+ | } | ||
+ | return sfView::SUCCESS; | ||
+ | } | ||
+ | |||
</pre> | </pre> | ||
+ | |||
+ | Las validaciones del Actions.class.php ultilizan un manejador de errores que se encuentra creado en la carpeta '''config''' , el cual se llama errores.yml, el cual contiene los códigos de los errores. | ||
+ | <pre> | ||
+ | 1: | ||
+ | cod: 1 | ||
+ | msj: Nivel Anterior No Existe | ||
+ | 2: | ||
+ | cod: 2 | ||
+ | msj: El Codigo no puede estar en Blanco ó No puede Contener menos de 4 Carácteres | ||
+ | </pre> | ||
+ | |||
+ | Estos errores se ejecutan cuando la función a la cual se le asigna $coderror devuelve códigos de errores '''self::$coderror=Articulos::validarAlmregart($this->caregart);''', esta linea de código se encuentra en la funcion validateEdit(). Si la función validateEdit() retorna false se ejecuta la función handleErrorEdit() enviando el error a la vista. | ||
+ | |||
+ | --[[Usuario:Desireé Martínez]] 16:08 26 abr 2007 (VET) |
Última versión de 20:15 26 abr 2007
Para realizar las validaciones a una forma debemos: En caso de módulos generados por el propel-init-admin: Crear una carpeta llamada validate y dentro de ella crear un archivo llamado edit.yml y para otro caso módulos generados con el init-module la carpeta validate ya viene por defecto solo debemos crear el archivo .yml debe llamarse a la accion que se va a ejecutar ejemplo edit.
El archivo edit.yml contiene lo siguiente: methods se declara el metodo post con los campos que se van a validar al momento de guardar. names se coloca cada uno de los campos con sus mensajes(si tienen y si son requeridos o no), y llamamos el validators respectivo al campo. Y al final creamos los validators segun las validaciones que tenga que hacersele a los campos.
methods: post: - "caregart{codart}" - "caregart{desart}" - "caregart{ramart}" - "caregart{unimed}" - "caregart{unialt}" - "caregart{relart}" - "caregart{exitot}" - "caregart{cosult}" - "caregart{cospro}" - "caregart{invini}" names: caregart{codart}: required: Yes required_msg: El Código del Articulo no puedo estar en Blanco validators: MyStringValidator6 caregart{desart}: required: Yes required_msg: El Descripción no puedo estar en Blanco validators: MyStringValidator caregart{ramart}: required: No validators: MyString2Validator caregart{unimed}: required: No validators: MyString3Validator caregart{unialt}: required: No validators: MyString4Validator caregart{relart}: required: No validators: MyString5Validator caregart{exitot}: required: No validators: MyNumberValidator caregart{cosult}: required: No validators: MyNumberValidator caregart{cospro}: required: No validators: MyNumberValidator caregart{invini}: required: No validators: MyNumberValidator MyStringValidator: class: sfStringValidator param: min: 2 min_error: La Descripción no puede tener menos de 2 caracteres max: 250 max_error: La Descripción no puede pasar mas de 250 caracteres MyStringValidator6: class: sfStringValidator param: min: 1 min_error: La Descripción no puede tener menos de 2 caracteres MyString2Validator: class: sfStringValidator param: min: 2 min_error: El Ramo del Articulo no puede tener menos de 2 caracteres max: max_error: El Estatus no puede pasar mas de 6 caracteres MyString3Validator: class: sfStringValidator param: min: 0 min_error: La Unidad de Medida no puede tener menos de 2 caracteres max: max_error: La Unidad de Medida no puede pasar mas de 15 caracteres MyString4Validator: class: sfStringValidator param: min: 0 min_error: La Unidad Alternativa no puede tener menos de 2 caracteres max: 15 max_error: La Unidad Alternativa no puede pasar mas de 15 caracteres MyString5Validator: class: sfStringValidator param: min: 0 min_error: La Relación no puede tener menos de 2 caracteres max: 25 max_error: La Relación no puede pasar mas de 25 caracteres MyNumberValidator: class: sfNumberValidator param: type: float type_error: Por favor, Introduzca Números Decimales nan_error: Por Favor, introduzca un Número Decimal min: 0000000000.00 min_error: El valor tiene que ser mayor que cero max: 9999999999.99 max_error: El valor debe contener maximo 9999999999.99
En este ejemplo, se encuentran algunos de los Estándares de Validación(sfNumberValidator y sfStringValidator) de symfony. Los demas se encuentra en capitulo 10 y el codigo de lo que hace en cada uno de ellos, se encuentra en la siguiente dirección C:\AppServ\php5\PEAR\symfony\validator.
Nota: Para agregar otras validaciones del Negocio crear una funcion ValidateEdit(Modulo Generados con propel-init-admin) en el Actions.class.php está se ejecutara al mismo tiempo que las otras(al Guardar) y Modificar la función handleErrorEdit.Ejemplo de página Almregart.
private static $coderror=-1; public function validateEdit() { if($this->getRequest()->getMethod() == sfRequest::POST) { $this->caregart = $this->getCaregartOrCreate(); $this->updateCaregartFromRequest(); self::$coderror=Articulos::validarAlmregart($this->caregart); if (self::$coderror<>-1) { return false; }else return true; }else return true; } public function handleErrorEdit() { $this->preExecute(); $this->caregart = $this->getCaregartOrCreate(); $this->updateCaregartFromRequest(); $this->labels = $this->getLabels(); if(!$this->validateEdit()) { $err = Herramientas::obtenerMensajeError(self::$coderror); $this->getRequest()->setError('caregart{codart}',$err); } return sfView::SUCCESS; }
Las validaciones del Actions.class.php ultilizan un manejador de errores que se encuentra creado en la carpeta config , el cual se llama errores.yml, el cual contiene los códigos de los errores.
1: cod: 1 msj: Nivel Anterior No Existe 2: cod: 2 msj: El Codigo no puede estar en Blanco ó No puede Contener menos de 4 Carácteres
Estos errores se ejecutan cuando la función a la cual se le asigna $coderror devuelve códigos de errores self::$coderror=Articulos::validarAlmregart($this->caregart);, esta linea de código se encuentra en la funcion validateEdit(). Si la función validateEdit() retorna false se ejecuta la función handleErrorEdit() enviando el error a la vista.
--Usuario:Desireé Martínez 16:08 26 abr 2007 (VET)