src.where.campo.valida_campo_filtro - gamboamartin/where GitHub Wiki
valida_campo_filtro
La función valida_campo_filtro
es una función privada que valida si un campo de filtro específico en un array de filtros cumple con ciertas condiciones. Devuelve true
si todas las condiciones se cumplen o un array con un mensaje de error en caso contrario.
Signatura
private function valida_campo_filtro(string $campo, string $campo_filtro, array $filtro): true|array
Parámetros
$campo (string): l campo que se está validando. Es una cadena de texto que no debe estar vacía.
$campo_filtro (string): El campo de filtro que se está validando dentro del array de filtros. Es una cadena de texto que no debe estar vacía.
$filtro (array): Un array asociativo que contiene los filtros.
Retorna
- true|array: La función devuelve true si todas las validaciones pasan. En caso de error, devuelve un array con un mensaje de error.
Explicación Detallada
-
Limpieza del campo de filtro:
-
- La función comienza eliminando los espacios en blanco al inicio y al final de la cadena $campo_filtro.
-
Verificación de campo de filtro vacío:
-
- Si el campo de filtro está vacío después de la limpieza, la función retorna un array con un mensaje de error indicando que el campo de filtro está vacío.
-
Limpieza del campo:
-
- La función elimina los espacios en blanco al inicio y al final de la cadena $campo.
-
Verificación de campo vacío:
-
- Si el campo está vacío después de la limpieza, la función retorna un array con un mensaje de error indicando que el campo está vacío.
-
Verificación de existencia del campo de filtro en el array de filtros:
-
- Si el campo de filtro no existe en el array de filtros, la función retorna un array con un mensaje de error indicando que el campo de filtro no existe.
-
Verificación de tipo de datos del campo de filtro:
-
- Si el campo de filtro no es un array, la función retorna un array con un mensaje de error indicando que el campo de filtro no es un array.
-
Verificación de existencia del operador en el campo de filtro:
-
- Si el operador no existe en el campo de filtro, la función retorna un array con un mensaje de error indicando que el operador no existe.
-
Verificación de existencia del valor en el campo de filtro:
-
- Si el valor no existe en el campo de filtro, la función retorna un array con un mensaje de error indicando que el valor no existe.
-
Verificación de campo de operador vacío:
-
- Si el operador está vacío después de la limpieza, la función retorna un array con un mensaje de error indicando que el operador está vacío.
-
Retorno de validación exitosa:
-
- Si todas las validaciones pasan, la función retorna true.
Ejemplos
$filtro = [
'campo_filtro1' => [
'operador' => '=',
'valor' => 'valor1'
],
// más filtros...
];
$resultado = $this->valida_campo_filtro('campo1', 'campo_filtro1', $filtro);
if ($resultado === true) {
echo "Los datos del campo de filtro son válidos.";
} else {
echo "Error: " . $resultado['mensaje'];
}
/*
En este ejemplo, si 'campo_filtro1' tiene todos los datos necesarios y válidos en el array de filtros, la función retornará true indicando que los datos del campo de filtro son válidos. En caso contrario, retornará un array con un mensaje de error.
*/
Código de la Función
private function valida_campo_filtro(string $campo, string $campo_filtro, array $filtro): true|array
{
$campo_filtro = trim($campo_filtro);
if($campo_filtro === ''){
return $this->error->error(mensaje:'Error campo_filtro esta vacio', data:$campo_filtro, es_final: true);
}
$campo = trim($campo);
if($campo === ''){
return $this->error->error(mensaje:'Error campo esta vacio', data:$campo, es_final: true);
}
if(!isset($filtro[$campo_filtro])){
return $this->error->error(mensaje:'Error no existe $filtro['.$campo_filtro.']', data:$campo,
es_final: true);
}
if(!is_array($filtro[$campo_filtro])){
return $this->error->error(mensaje:'Error no es un array $filtro['.$campo_filtro.']', data:$campo,
es_final: true);
}
if(!isset($filtro[$campo_filtro]['operador'])){
return $this->error->error(mensaje:'Error no existe $filtro['.$campo_filtro.'][operador]', data:$campo,
es_final: true);
}
if(!isset($filtro[$campo_filtro]['valor'])){
return $this->error->error(mensaje:'Error no existe $filtro['.$campo_filtro.'][valor]', data:$campo,
es_final: true);
}
if(trim(($filtro[$campo_filtro]['operador'])) === ''){
return $this->error->error(mensaje:'Error esta vacio $filtro['.$campo_filtro.'][operador]', data:$campo,
es_final: true);
}
return true;
}