administrador.modelado.validaciones.valida_regex - gamboamartin/administrador GitHub Wiki

valida_regex

La función valida_regex es una función privada que valida varios campos de un array $registro_upd contra patrones de expresión regular definidos en un array $tipo_campos. La función itera sobre los campos especificados y verifica que los valores correspondientes en $registro_upd cumplan con el formato esperado.

Signatura


private function valida_regex(array $tipo_campos, array $registro_upd): true|array

Parámetros

  • array $tipo_campos:
    Un array donde las claves son los nombres de los campos que se desean validar y los valores son los tipos de campo, que determinan el patrón de expresión regular a utilizar en la validación.

  • array $registro_upd:
    Un array que contiene los datos del registro a validar. Cada clave representa el nombre de un campo y cada valor es el dato asociado a ese campo.

Retorna

  • true|array:
    Retorna true si todas las validaciones son exitosas. En caso de error, retorna un array de error generado por $this->error->error().

Explicación Detallada

  1. Iteración sobre los campos:

    • La función itera sobre cada par clave-valor en $tipo_campos, donde la clave es el nombre del campo ($campo) y el valor es el tipo de campo ($tipo_campo).
  2. Validaciones:

    • Si el campo ($campo) no existe en $registro_upd, la función continúa con el siguiente campo.
    • Si el valor del campo en $registro_upd es una cadena vacía (''), la función también continúa con el siguiente campo.
    • La función utiliza valida_regex_campo para validar el campo actual. Si ocurre un error durante la validación, se retorna un array de error.
  3. Retorno:

    • Si todas las validaciones son exitosas, la función retorna true.

Ejemplos

$tipo_campos = [
    'email' => 'email',
    'telefono' => 'telefono',
    'nombre' => 'nombre'
];

$registro_upd = [
    'email' => '[email protected]',
    'telefono' => '555-1234',
    'nombre' => 'John Doe'
];

$resultado = $this->valida_regex($tipo_campos, $registro_upd);

// Resultado esperado:
// true (si todos los campos cumplen con los patrones correspondientes)

Código de la Función

private function valida_regex(array $tipo_campos, array $registro_upd): true|array
    {
        foreach ($tipo_campos as $campo =>$tipo_campo){
            if(!isset($registro_upd[$campo])){
                continue;
            }
            if(trim($registro_upd[$campo]) === ''){
                continue;
            }
            $valida = $this->valida_regex_campo(campo: $campo,registro_upd: $registro_upd,tipo_campo: $tipo_campo);
            if(errores::$error){
                return $this->error->error(mensaje: 'Error al validar',data:  $valida);
            }
        }
        return true;
    }