administrador.base.orm.inicializacion.tablas_select - gamboamartin/administrador GitHub Wiki

tablas_select

La función tablas_select en PHP se utiliza para procesar y devolver las columnas de una tabla específica de una base de datos. A continuación, se proporciona una descripción detallada de su funcionamiento y estructura.

La función tablas_select toma como parámetro un objeto de tipo modelo_base, que contiene información sobre la tabla y sus columnas. Esta función realiza los siguientes pasos:

  1. Elimina el namespace de la tabla.
  2. Asigna las columnas del modelo a la estructura de la base de datos.
  3. Verifica si existen columnas para la tabla especificada.
  4. Devuelve las columnas de la tabla o un error si no se encuentran columnas.

Signatura

final public function tablas_select(modelo_base $modelo): array

Parámetros

$modelo (modelo_base): Contiene la información de la tabla y sus columnas.

Retorna

  • array: Con las columnas de la tabla si se encuentran.
  • array: Un array de error en caso de que no existan columnas para la tabla especificada.

Explicación Detallada

  1. Eliminación del Namespace de la Tabla:
    • Se elimina el namespace del nombre de la tabla utilizando la función str_replace. Esto se hace para trabajar con el nombre de la tabla sin su namespace.
  • Se verifica si la clave está vacía. Si lo está, se retorna un mensaje de error utilizando el objeto error.
  1. **Creación de una Instancia de sql_bass: **
  • Se crea una nueva instancia de la clase sql_bass, que se utiliza para interactuar con la estructura de la base de datos.
  1. **Asignación de Columnas del Modelo a la Estructura de la Base de Datos: **
  • Se asignan las columnas del modelo (especificadas en $modelo->columnas) a la estructura de la base de datos en el objeto sql_bass.
  1. **Verificación de Existencia de Columnas: **
  • Se verifica si existen columnas asignadas para la tabla especificada en la estructura de la base de datos.
  • Si no existen columnas, se retorna un array de error utilizando una función de manejo de errores.
  1. **Retorno de Columnas: **
  • Si existen columnas, se retornan como un array.

Ejemplos

// Ejemplo: Cuando se pasa este modelo a la función tablas_select, la función debería devolver un array con las columnas de la tabla usuarios.
$modelo = new modelo_base();
$modelo->NAMESPACE = 'App\\Models\\';
$modelo->tabla = 'App\\Models\\usuarios';
$modelo->columnas = ['id', 'nombre', 'email'];

$resultado = $this->tablas_select($modelo);

print_r($resultado);

Array
(
    [0] => id
    [1] => nombre
    [2] => email
)

// Ejemplo: Ahora, supongamos que tenemos un modelo modelo_base con las siguientes propiedades, pero no se especifican columnas:

$modelo = new modelo_base();
$modelo->NAMESPACE = 'App\\Models\\';
$modelo->tabla = 'App\\Models\\productos';
$modelo->columnas = [];

$resultado = $this->tablas_select($modelo);

print_r($resultado);

Array
(
    [error] => No existen columnas para la tabla productos
    [data] => productos
    [es_final] => true
)

Código de la Función

final public function tablas_select(modelo_base $modelo): array
    {
        $tabla_sin_namespace = str_replace($modelo->NAMESPACE, '', $modelo->tabla);
        $modelo->tabla = $tabla_sin_namespace;

        $consulta_base = new sql_bass();

        $consulta_base->estructura_bd[$modelo->tabla]['columnas'] = $modelo->columnas;

        $columnas_tabla = $consulta_base->estructura_bd[$modelo->tabla]['columnas'];

        if (!isset($columnas_tabla)) {
            return $this->error->error(mensaje: 'No existen columnas para la tabla ' . $modelo->tabla,
                data: $modelo->tabla, es_final: true);
        }
        return $columnas_tabla;
    }