administrador.base.orm.columnas.asigna_columnas_en_session - gamboamartin/administrador GitHub Wiki
asigna_columnas_en_session
La función asigna_columnas_en_session
asigna columnas de datos de una tabla de base de datos a un modelo, utilizando las variables de sesión para verificar la existencia de los datos necesarios. Si las columnas ya están definidas en la sesión, se usan para actualizar el modelo. Si no, se retorna un valor array indicando el fallo.
Signatura
private function asigna_columnas_en_session(modelo_base $modelo, string $tabla_bd): bool|array
Parámetros
$modelo (modelo_base): Instancia del modelo base al cual se le asignarán las columnas.
$tabla_bd (string): Nombre de la tabla de base de datos como cadena de texto.
Retorna
-
bool: True si las columnas se asignan correctamente al modelo
-
bool: False si las columnas no están definidas en la sesión.
-
array: Devuelve un array de error si alguna validación falla o si ocurre un error durante la asignación.
Explicación Detallada
Validaciones y Errores
-
Verificación del nombre de la tabla:
-
- Si $tabla_bd está vacío, se retorna un error indicando que la tabla no puede estar vacía.
-
Existencia de columnas en la sesión:
-
- Si las columnas correspondientes a la tabla especificada ya están definidas en $_SESSION['campos_tabla'] y $_SESSION['columnas_completas'], se procede a asignar las columnas.
Asignación de Datos
- Si las columnas existen en la sesión, se llama a la función asigna_data_columnas para asignar las columnas al objeto $data.
- Si ocurre algún error durante la asignación de columnas, se retorna un array con el error.
- Si todo es exitoso, se asignan las columnas al modelo y se retorna true.
Ejemplos
$modelo = new modelo_base();
$tabla = 'mi_tabla';
$resultado = $this->asigna_columnas_en_session($modelo, $tabla);
if (is_array($resultado)) {
// Manejar error
} elseif ($resultado === false) {
// Manejar caso en que las columnas no están definidas en la sesión
} else {
// Usar el modelo con las columnas asignadas
}
Código de la Función
private function asigna_columnas_en_session(modelo_base $modelo, string $tabla_bd): bool|array
{
$tabla_bd = trim($tabla_bd);
if($tabla_bd===''){
return $this->error->error(mensaje: 'Error tabla_bd no puede venir vacia', data: $tabla_bd, es_final: true);
}
$data = new stdClass();
if(isset($_SESSION['campos_tabla'][$tabla_bd], $_SESSION['columnas_completas'][$tabla_bd])){
$data = $this->asigna_data_columnas(data: $data,tabla_bd: $tabla_bd);
if(errores::$error){
return $this->error->error(mensaje: 'Error al generar columnas', data: $data);
}
$modelo->data_columnas = $data;
return true;
}
return false;
}