Validaciones

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.

[[Imagen:muestra.jpg]]

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: 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
        
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:       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

MyString4Validator:
    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

MyString5Validator:
    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 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).Revisar capitulo 6 Validation and Error-Handling Methods

Ejemplo.(Adaptarlo a lo que se quiere).

public function validateEdit()
  {
    return ($this->getRequestParameter('id') > 0);
  }
 
  public function handleErrorEdit()
  {
    $this->message = "Parametros Invalidos";
 
    return sfView::SUCCESS;
  }
 
  public function executeEdit()
  {
    $this->message = "Los Parametros son correctos";
  }
Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas