Validaciones en la vista

De CidesaWiki

Saltar a navegación, buscar

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)

Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas