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
:
Retornatrue
si la validación es exitosa. En caso de error, retorna un array de error generado por$this->error->error()
.
Explicación Detallada
-
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
.
- Se utiliza
-
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.
- Si
-
Validación del patrón:
- Se instancia la clase
validacion
y se utiliza el métodovalida_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.
- Se instancia la clase
-
Retorno:
- Si todas las validaciones son exitosas, la función retorna
true
.
- Si todas las validaciones son exitosas, la función retorna
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;
}