administrador.base.orm.columnas.asigna_columnas_session_new - gamboamartin/administrador GitHub Wiki
asigna_columnas_session_new
La función asigna_columnas_session_new asigna las columnas de una tabla de la base de datos a la sesión actual de PHP y las almacena en el modelo proporcionado. Primero, realiza varias validaciones sobre el nombre de la tabla, luego genera las columnas a través de otra función (genera_columnas_field), y finalmente, asigna estas columnas a variables de sesión y al modelo.
Signatura
private function asigna_columnas_session_new(modelo_base $modelo, string $tabla_bd): array|stdClass
Parámetros
$modelo (modelo_base): $modelo (modelo_base): Una instancia de la clase modelo_base que representa el modelo de la base de datos. $tabla_bd (string): El nombre de la tabla de la base de datos de la cual se desean obtener y almacenar las columnas.
Retorna
- array: Retorna un array con las columnas generadas y almacenadas en el modelo si la operación es exitosa.
- array: 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.
-
- Se verifica si $tabla_bd es un valor numérico. Si lo es, también se genera un error y se retorna un objeto de error.
-
Generación de las Columnas de la Tabla:
-
- La función llama a genera_columnas_field() para generar las columnas de la tabla especificada.
-
- Si ocurre un error durante esta operación (verificado por errores::$error), se genera y retorna un objeto de error.
-
Asignación de las Columnas a la Sesión:
-
- Una vez que las columnas son generadas correctamente, se asignan dos valores a la sesión ($_SESSION):
-
-
- $_SESSION['campos_tabla'][$tabla_bd]: Se asignan las columnas parseadas (columnas_parseadas) de la tabla a esta variable de sesión.
-
-
-
- $_SESSION['columnas_completas'][$tabla_bd]: Se asignan las columnas completas (columnas_completas) de la tabla a esta variable de sesión.
-
-
Asignación de las Columnas al Modelo:
-
- Después de asignar las columnas a la sesión, se asignan al atributo data_columnas del modelo proporcionado.
-
- Finalmente, la función retorna este conjunto de columnas almacenado en el modelo.
-
Manejo de Errores
-
- Al igual que en la función anterior, los errores se manejan mediante un objeto $this->error, el cual es probablemente una instancia de una clase para gestionar errores.
-
- Los errores se retornan inmediatamente, deteniendo la ejecución de la función (es_final: true en algunos casos).
Ejemplos
$modelo = new modelo_base();
$nombre_tabla = "productos";
$columnas = $this->asigna_columnas_session_new($modelo, $nombre_tabla);
if (is_array($columnas)) {
// Las columnas se asignaron correctamente a la sesión y al modelo
} else {
// Manejo del error
}
Código de la Función
private function asigna_columnas_session_new(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_field = $this->genera_columnas_field(modelo:$modelo, tabla_bd: $tabla_bd);
if(errores::$error){
return $this->error->error(mensaje: 'Error al obtener columnas', data: $columnas_field);
}
$_SESSION['campos_tabla'][$tabla_bd] = $columnas_field->columnas_parseadas;
$_SESSION['columnas_completas'][$tabla_bd] = $columnas_field->columnas_completas;
$modelo->data_columnas = $columnas_field;
return $modelo->data_columnas;
}