administrador.base.orm.columnas.columnas_by_table - gamboamartin/administrador GitHub Wiki
columnas_by_table
La función columnas_by_table
es una función privada que genera una cadena de columnas SQL basándose en un array de nombres de tablas. Esta función integra y organiza las columnas de acuerdo con las tablas seleccionadas, permitiendo que las consultas SQL se construyan de manera eficiente y precisa.
Signatura
private function columnas_by_table(array $columnas_by_table, bool $columnas_en_bruto, modelo_base $modelo): array|string
Parámetros
-
array $columnas_by_table
:
Un array que contiene los nombres de las tablas que se van a utilizar en la consulta SQL. Cada elemento del array debe ser el nombre de una tabla. -
bool $columnas_en_bruto
:
Un valor booleano que indica si las columnas deben ser procesadas en su forma original (true
) o si deben ser ajustadas y personalizadas (false
). -
modelo_base $modelo
:
Una instancia de la clasemodelo_base
que representa el modelo de datos sobre el que se está trabajando. Este objeto proporciona los metadatos y atributos necesarios para ajustar las columnas.
Retorno
array|string
:
Retorna una cadena que representa las columnas SQL generadas para las tablas seleccionadas. En caso de error, retorna un array de error generado por$this->error->error()
.
Explicación Detallada
-
Validación del array de tablas:
- La función verifica si el array
$columnas_by_table
está vacío (count($columnas_by_table) === 0
). Si está vacío, se genera un error que incluye una sugerencia (fix
) sobre cómo estructurar correctamente el array de tablas y se retorna un array de error.
- La función verifica si el array
-
Inicialización de columnas y tablas:
- Se llama a la función
init_columnas_by_table()
para inicializar la estructura de columnas SQL y tablas seleccionadas basada en el array$columnas_by_table
. - Si ocurre un error durante la inicialización, se genera un mensaje de error y se retorna un array con el mensaje de error.
- Se llama a la función
-
Selección de columnas:
- Se llama a la función
columnas_tablas_select()
para generar una cadena de columnas SQL basada en las tablas seleccionadas en$init->tablas_select
y las columnas SQL inicializadas en$init->columnas_sql
. - Si ocurre un error en esta etapa, se genera un mensaje de error y se retorna un array con el mensaje de error.
- Se llama a la función
-
Retorno de las columnas generadas:
- Si todas las etapas se completan con éxito, la función retorna la cadena de columnas SQL generadas y ajustadas.
Ejemplos
$columnas_by_table = ['usuarios', 'pedidos'];
$columnas_en_bruto = false;
$modelo = new modelo_base();
$resultado = $this->columnas_by_table($columnas_by_table, $columnas_en_bruto, $modelo);
// Resultado esperado:
// Una cadena con las columnas SQL generadas para las tablas 'usuarios' y 'pedidos'.
// Un array de error si ocurre algún problema.
Código de la Función
private function columnas_by_table(array $columnas_by_table, bool $columnas_en_bruto,
modelo_base $modelo): array|string
{
if(count($columnas_by_table) === 0){
$fix = 'columnas_by_table debe estar maquetado de la siguiente forma $columnas_by_table[] = "nombre_tabla"';
return $this->error->error(mensaje: 'Error debe columnas_by_table esta vacia', data: $columnas_by_table,
es_final: true, fix: $fix);
}
$init = $this->init_columnas_by_table(columnas_by_table: $columnas_by_table);
if (errores::$error) {
return $this->error->error(mensaje: 'Error al inicializa datos de columnas by table', data: $init);
}
$columnas = $this->columnas_tablas_select(columnas_en_bruto: $columnas_en_bruto,
columnas_sql: $init->columnas_sql, modelo: $modelo, tablas_select: $init->tablas_select);
if (errores::$error) {
return $this->error->error(mensaje: 'Error al integrar columnas', data: $columnas);
}
return $columnas;
}