administrador.base.orm.columnas.init_columnas_by_table - gamboamartin/administrador GitHub Wiki
init_columnas_by_table
La función init_columnas_by_table
es una función privada que inicializa la estructura de columnas y tablas seleccionadas en función de un array de nombres de tablas. Esta función prepara los datos necesarios para la construcción de consultas SQL, asegurando que las tablas y sus columnas estén correctamente estructuradas.
Signatura
private function init_columnas_by_table(array $columnas_by_table): stdClass|array
Parámetros
array $columnas_by_table
:
Un array que contiene los nombres de las tablas que se van a utilizar en la consulta SQL. Este array debe estar estructurado adecuadamente, donde cada elemento es el nombre de una tabla.
Retorno
-
stdClass|array
:
Retorna un objetostdClass
que contiene dos propiedades:columnas_sql
: Un array vacío que se utilizará para agregar columnas SQL.tablas_select
: Un array que mapea los nombres de las tablas proporcionadas en$columnas_by_table
a un valorfalse
, indicando que las tablas han sido seleccionadas pero aún no tienen columnas asignadas.
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 estructuras:
- Se inicializa el array
columnas_sql
como un array vacío. Este array se utilizará más adelante para almacenar las columnas SQL correspondientes. - Se inicializa el array
tablas_select
como un array vacío. Luego, se itera sobre cada tabla en$columnas_by_table
y se añade al arraytablas_select
con un valorfalse
, indicando que la tabla ha sido seleccionada pero aún no se han definido columnas.
- Se inicializa el array
-
Retorno de datos estructurados:
- La función crea un objeto
stdClass
que contiene dos propiedades:columnas_sql
: El array de columnas SQL, que en este punto está vacío.tablas_select
: El array de tablas seleccionadas, donde cada tabla se mapea afalse
.
- Retorna este objeto
stdClass
con la estructura inicializada.
- La función crea un objeto
Ejemplos
$columnas_by_table = ['usuarios', 'pedidos'];
$resultado = $this->init_columnas_by_table($columnas_by_table);
// Resultado esperado:
// Un objeto stdClass con las propiedades `columnas_sql` (array vacío) y `tablas_select`
// (array con las tablas 'usuarios' y 'pedidos' mapeadas a `false`).
Código de la Función
private function init_columnas_by_table(array $columnas_by_table): stdClass|array
{
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);
}
$columnas_sql = array();
$tablas_select = array();
foreach($columnas_by_table as $tabla){
$tablas_select[$tabla] = false;
}
$data = new stdClass();
$data->columnas_sql = $columnas_sql;
$data->tablas_select = $tablas_select;
return $data;
}