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

  1. 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.
  2. Extracción y limpieza de la clave principal:

    • La función obtiene la primera clave del array $data_filtro utilizando la función key() y elimina los espacios en blanco al inicio y al final utilizando trim().
  3. 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.
  4. 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);

    }