Validaciones en la vista
De CidesaWiki
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 caregart{desart}: required: Yes required_msg: El Descripción no puedo estar en Blanco validators: StringValidator_desart caregart{ramart}: required: No validators: StringValidator_ramart caregart{unimed}: required: No validators: StringValidator_unimed caregart{unialt}: required: No validators: StringValidator_unialt caregart{relart}: required: No validators: StringValidator_relart caregart{exitot}: required: No validators: MyNumberValidator caregart{cosult}: required: No validators: MyNumberValidator caregart{cospro}: required: No validators: MyNumberValidator caregart{invini}: required: No validators: MyNumberValidator StringValidator_desart: 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 StringValidator_ramart: class: sfStringValidator param: min: 2 min_error: El Ramo del Articulo no puede tener menos de 2 caracteres max: max_error: El Ramo del Articulo no puede pasar mas de 6 caracteres StringValidator_unimed: class: sfStringValidator param: min: 2 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 StringValidator_unialt: class: sfStringValidator param: min: 2 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 StringValidator_relart: class: sfStringValidator param: min: 2 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 Libro de Symfony. Y el código de lo que hace en cada uno de ellos, se encuentra en la siguiente dirección C:\AppServ\php5\PEAR\symfony\validator.
Para Validar una fecha con respecto a una Tabla
Se buscan en la tabla cpdefniv obteniendo los campos fecini y feccie
cadphart{feccot}: required: Yes required_msg: La Fecha no puedo estar en Blanco validators: FechaValidator FechaValidator: class: CidesaDateValidator param: class: Cpdefniv columnmin: fecini columnmax: feccie min_error: La Fecha Especificada no puede ser Menor a la Fecha de Inicio del Período max_error: La Fecha Especificada no puede ser Mayor a la Fecha de Inicio del Período date_error: Fecha Inválida
--Desi 16:23 26 abr 2007 (VET)