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: - "fordefpry{codpro}" - "fordefpry{nompro}" - "fordefpry{codprg}" - "fordefpry{ubigeo}" - "fordefpry{codemp}" - "fordefpry{uniejepri}" - "fordefpry{enupro}" - "fordefpry{objestnueeta}" - "fordefpry{objestins}" - "fordefpry{objeesppro}" - "fordefpry{objpndes}" - "fordefpry{respro}" - "fordefpry{unimedres}" - "fordefpry{benpro}" - "fordefpry{codsta}" names: fordefpry{codpro}: required: Yes required_msg: El Código del Proyecto o Acción Centralizada no puedo estar en Blanco. validators: UniqueValidator fordefpry{nompro}: required: No validators: DescripcionValidator fordefpry{codprg}: required: No validators: ProgramaValidator fordefpry{ubigeo}: required: No validators: UbicacionValidator fordefpry{codemp}: required: No validators: ResponsableValidator fordefpry{uniejepri}: required: No validators: EjecutoraValidator fordefpry{enupro}: required: No validators: EnunciadoValidator fordefpry{objestnueeta}: required: No validators: NuevaEtapaValidator fordefpry{objestins}: required: No validators: InstitucionalValidator fordefpry{objeesppro}: required: No validators: ObjproyectoValidator fordefpry{objpndes}: required: No validators: PndesValidator fordefpry{respro}: required: No validators: ResultadoValidator fordefpry{unimedres}: required: No validators: MedidaValidator fordefpry{benpro}: required: No validators: BeneficiarioValidator fordefpry{codsta}: required: No validators: EstatusValidator UniqueValidator: class: sfPropelUniqueValidator param: class: Fordefpry column: codpro unique_error: El Código del Proyecto o Acción Centralizada ya existe. Por Favor, Cambiélo por otro. DescripcionValidator: class: sfStringValidator param: min: 5 min_error: El Nombre del Proyecto no puede tener menos de 5 carácteres max: 1000 max_error: El Nombre del Proyecto no puede tener más de 1000 carácteres ProgramaValidator: class: CidesaExistValidator param: class: Fordefprg column: codprg unique_error: El Código del Programa no existe. UbicacionValidator: class: sfStringValidator param: min: 5 min_error: La Ubicación Geográfica no puede tener menos de 5 carácteres max: 250 max_error: La Ubicación Geográfica no puede tener más de 250 carácteres ResponsableValidator: class: CidesaExistValidator param: class: Nphojint column: codemp unique_error: El Código del Responsable no existe. EjecutoraValidator: class: CidesaExistValidator param: class: Fordefcatpre column: codcat unique_error: El Código de la Unidad Ejecutora no existe. EnunciadoValidator: class: sfStringValidator param: min: 5 min_error: El Enunciado del Problema no puede tener menos de 5 carácteres max: 1000 max_error: El Enunciado del Problema no puede tener más de 1000 carácteres NuevaEtapaValidator: class: sfStringValidator param: min: 5 min_error: El Objetivo Estratégico Nueva Etapa no puede tener menos de 5 carácteres max: 1000 max_error: El Objetivo Estratégico Nueva Etapa no puede tener más de 1000 carácteres InstitucionalValidator: class: sfStringValidator param: min: 5 min_error: El Objetivo Estratégico Institucional no puede tener menos de 5 carácteres max: 1000 max_error: El Objetivo Estratégico Institucional no puede tener más de 1000 carácteres ObjproyectoValidator: class: sfStringValidator param: min: 5 min_error: El Objetivo Específico del Proyecto no puede tener menos de 5 carácteres max: 1000 max_error: El Objetivo Específico del Proyecto no puede tener más de 1000 carácteres PndesValidator: class: sfStringValidator param: min: 5 min_error: El Objetivo PNDES no puede tener menos de 5 carácteres max: 250 max_error: El Objetivo PNDES no puede tener más de 250 carácteres ResultadoValidator: class: sfStringValidator param: min: 5 min_error: El Resultado del Proyecto no puede tener menos de 5 carácteres max: 1000 max_error: El Resultado del Proyecto no puede tener más de 1000 carácteres MedidaValidator: class: CidesaExistValidator param: class: Fordefunimed column: codunimed unique_error: El Código de la Unidad de Medida no existe. BeneficiarioValidator: class: sfStringValidator param: min: 5 min_error: El Beneficiario no puede tener menos de 5 carácteres max: 250 max_error: El Beneficiario no puede tener más de 250 carácteres EstatusValidator: class: CidesaExistValidator param: class: Fordefsta column: codsta unique_error: El Código del Estatus no existe.
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)