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:
- Elimina el namespace de la tabla.
- Asigna las columnas del modelo a la estructura de la base de datos.
- Verifica si existen columnas para la tabla especificada.
- 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
- 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
.
- **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.
- **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.
- **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.
- **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;
}