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_filtro
tiene 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_filtro
utilizando 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);
}