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;
}