src.where.campo_data_filtro - gamboamartin/where GitHub Wiki
campo_data_filtro
La función campo_data_filtro es una función privada que extrae y valida la clave principal de un array asociativo ($data_filtro), asegurándose de que sea un campo válido para su uso en consultas SQL. La función verifica que el array no esté vacío, que la clave sea un texto válido, y que no sea un valor numérico.
Signatura
private function campo_data_filtro(array $data_filtro): string|array
Parámetros
array $data_filtro:
Un array asociativo del cual se extraerá la clave principal. Este array representa un conjunto de datos o un filtro, donde la clave es el nombre de un campo y el valor asociado es el dato o filtro correspondiente.
Retorna
string|array:
Retorna una cadena que representa la clave del array$data_filtro, si esta es válida. En caso de error, retorna un array de error generado por$this->error->error().
Explicación Detallada
-
Verificación de que el array no esté vacío:
- La función verifica si el array
$data_filtrotiene al menos un elemento. Si está vacío, genera un mensaje de error y retorna un array con el mensaje de error.
- La función verifica si el array
-
Extracción y limpieza de la clave principal:
- La función obtiene la primera clave del array
$data_filtroutilizando la funciónkey()y elimina los espacios en blanco al inicio y al final utilizandotrim().
- La función obtiene la primera clave del array
-
Validación de la clave:
- La función verifica que la clave no esté vacía después de la limpieza. Si está vacía, genera un mensaje de error y retorna un array con el mensaje de error.
- Verifica que la clave no sea numérica. Si la clave es numérica, genera un mensaje de error y retorna un array con el mensaje de error.
-
Retorno de la clave validada:
- Si la clave es válida, la función la retorna como una cadena de texto.
Ejemplos
$data_filtro = ['precio' => 100];
$resultado = $this->campo_data_filtro($data_filtro);
// Resultado esperado:
// "precio"
// Un array de error si ocurre algún problema.
Código de la Función
private function campo_data_filtro(array $data_filtro): string|array
{
if(count($data_filtro) === 0){
return $this->error->error(mensaje:'Error data_filtro esta vacio', data:$data_filtro, es_final: true);
}
$campo = key($data_filtro);
$campo = trim($campo);
if($campo === ''){
return $this->error->error(mensaje: "Error key vacio",data: $campo, es_final: true);
}
if(is_numeric($campo )){
return $this->error->error(mensaje: "Error key debe ser un texto valido",data: $campo, es_final: true);
}
return trim($campo);
}