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