administrador.base.orm.genera_columnas_field - gamboamartin/administrador GitHub Wiki

genera_columnas_field

La función genera_columnas_field se encarga de generar un arreglo con los nombres de las columnas de una tabla en la base de datos, a partir de un modelo de base de datos dado y el nombre de la tabla. Esta función realiza varias validaciones sobre el nombre de la tabla y maneja errores en caso de que las validaciones o las operaciones de obtención de columnas fallen.

Signatura

private function genera_columnas_field(modelo_base $modelo, string $tabla_bd): array|stdClass

Parámetros

$modelo (modelo_base): Una instancia de la clase modelo_base que representa el modelo de la base de datos a ser utilizado. $tabla_bd (string): El nombre de la tabla de la base de datos de la cual se desean obtener los nombres de las columnas.

Retorna

  • array: con los nombres de las columnas de la tabla si la operación es exitosa. En caso de error, retorna un stdClass que contiene información del error.

Explicación Detallada

  • Limpieza y Validación del Nombre de la Tabla:

    • Se utiliza la función trim() para eliminar espacios en blanco al inicio y al final de $tabla_bd.
    • Se verifica si $tabla_bd está vacío después de aplicar trim(). Si está vacío, se genera un error y la función retorna un objeto de error.
  • Obtención de las Columnas desde la Base de Datos:

    • La función llama a columnas_bd_native() para obtener las columnas de la tabla especificada en la base de datos utilizando el modelo proporcionado.
    • Si ocurre un error durante esta operación (verificado por errores::$error), se genera y retorna un objeto de error.
  • Conversión de las Columnas a un Formato Específico:

    • Se llama a la función columnas_sql_array() para convertir el resultado obtenido en un array específico de columnas.
    • Si ocurre un error durante esta operación, se genera y retorna un objeto de error.
  • Retorno de las Columnas:

    • Si todas las operaciones anteriores se realizan correctamente, la función retorna el array resultante de columnas.
  • Manejo de Errores

    • La función maneja los errores mediante un objeto $this->error, que parece ser una instancia de una clase de manejo de errores.
    • Los errores se capturan y se retornan inmediatamente, deteniendo la ejecución de la función (es_final: true en algunos casos).

Ejemplos

$modelo = new modelo_base();
$nombre_tabla = "usuarios";
$columnas = $this->genera_columnas_field($modelo, $nombre_tabla);

if (is_array($columnas)) {
    // Operación exitosa, trabajar con $columnas
} else {
    // Manejo del error
}

Código de la Función

private function genera_columnas_field(modelo_base $modelo, string $tabla_bd): array|stdClass
    {
        $tabla_bd = trim($tabla_bd);
        if($tabla_bd === ''){
            return $this->error->error(mensaje: 'Error $tabla_bd esta vacia',data:  $tabla_bd, es_final: true);
        }
        if(is_numeric($tabla_bd)){
            return $this->error->error(mensaje: 'Error $tabla_bd no puede ser un numero',data:  $tabla_bd,
                es_final: true);
        }
        $columnas = $this->columnas_bd_native(modelo:$modelo, tabla_bd: $tabla_bd);
        if(errores::$error){
            return $this->error->error(mensaje: 'Error al obtener columnas', data: $columnas);
        }

        $columnas_field = $this->columnas_sql_array(columnas: $columnas);
        if(errores::$error){
            return $this->error->error(mensaje: 'Error al obtener columnas',data:  $columnas_field);
        }
        return $columnas_field;
    }