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

valida_regex_campo

La función valida_regex_campo es una función privada que valida el contenido de un campo específico dentro de un array $registro_upd contra un patrón de expresión regular determinado por el parámetro $tipo_campo. La función verifica la existencia del campo en el array y valida que su valor cumpla con el formato esperado.

Signatura


final public function campos_no_upd(array $campos_no_upd, array $registro): array

Parámetros

  • string $campo:
    El nombre del campo que se desea validar dentro del array $registro_upd.

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

  • string $tipo_campo:
    El tipo de campo que se va a validar, utilizado para determinar el patrón de expresión regular que debe cumplir el valor del campo.

Retorna

  • true|array:
    Retorna true si la validación es exitosa. En caso de error, retorna un array de error generado por $this->error->error().

Explicación Detallada

  1. Limpieza de parámetros:

    • Se utiliza trim() para eliminar espacios en blanco al inicio y al final de los parámetros $campo y $tipo_campo.
  2. Validaciones iniciales:

    • Si $campo es una cadena vacía (''), se retorna un error indicando que el campo está vacío.
    • Si $tipo_campo es una cadena vacía (''), se retorna un error indicando que el tipo de campo está vacío.
    • Si $campo no existe como clave en $registro_upd, se retorna un error indicando que el campo no se encuentra en el registro.
  3. Validación del patrón:

    • Se instancia la clase validacion y se utiliza el método valida_pattern() para validar que el valor del campo en $registro_upd cumple con el patrón definido por $tipo_campo.
    • Si ocurre un error durante la validación, se retorna un array de error.
    • Si la validación falla (el patrón no coincide), se retorna un error especificando el campo y el formato esperado.
  4. Retorno:

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

Ejemplos

$campo = 'email';
$registro_upd = [
    'id' => 1,
    'email' => '[email protected]',
    'nombre' => 'John Doe'
];
$tipo_campo = 'email';

$resultado = $this->valida_regex_campo($campo, $registro_upd, $tipo_campo);

// Resultado esperado:
// true (si el email cumple con el formato esperado)

Código de la Función

private function valida_regex_campo(string $campo, array $registro_upd, string $tipo_campo): true|array
    {
        $campo = trim($campo);
        if($campo === ''){
            return $this->error->error(mensaje: 'Error el campo esta vacio',data:  $campo);
        }
        $tipo_campo = trim($tipo_campo);
        if($tipo_campo === ''){
            return $this->error->error(mensaje: 'Error el tipo_campo esta vacio',data:  $tipo_campo);
        }
        if(!isset($registro_upd[$campo])){
            return $this->error->error(mensaje: 'Error no existe el campo en el registro '.$campo,data:  $registro_upd);
        }
        $valida = (new validacion())->valida_pattern(key: $tipo_campo,txt:  $registro_upd[$campo]);
        if(errores::$error){
            return $this->error->error(mensaje: 'Error al validar ',data:  $valida);
        }
        if(!$valida){
            return $this->error->error(mensaje: 'Error al validar '.$campo.' debe tener formato '.$tipo_campo,
                data: $registro_upd[$campo]);
        }
        return true;
    }