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)