administrador.base.orm.columnas.genera_columna_tabla - gamboamartin/administrador GitHub Wiki
genera_columna_tabla
La función genera_columna_tabla
es una función privada que se encarga de generar una cadena de columnas SQL para una tabla en función de las columnas proporcionadas, ajustando los nombres de las columnas si es necesario. También valida que las claves proporcionadas no sean valores numéricos y ajusta los nombres de las tablas eliminando prefijos específicos.
Signatura
private function genera_columna_tabla(string $columnas, bool $columnas_en_bruto, array $columnas_sql, string $key, modelo_base $modelo):array|string
Parámetros
-
string $columnas
:
Una cadena que contiene las columnas SQL que se deben procesar y ajustar para su uso en la consulta SQL. -
bool $columnas_en_bruto
:
Un valor booleano que indica si las columnas deben ser procesadas en su forma original o si deben ser ajustadas antes de su uso. -
array $columnas_sql
:
Un array que contiene columnas SQL adicionales o personalizadas que pueden ser integradas en la cadena resultante. -
string $key
:
La clave o nombre de la tabla en la que se basan las columnas. Esta clave es ajustada para eliminar el prefijomodels\
si está presente. -
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.
Retorna
array|string
:
Retorna una cadena que representa las columnas SQL ajustadas para la tabla. En caso de error, retorna un array de error generado por$this->error->error()
.
Explicación Detallada
-
Ajuste de clave:
- Se procesa el parámetro
$key
para eliminar el prefijomodels\
, asegurando que el nombre de la tabla sea correcto para su uso en la consulta SQL. - Se valida que
$key
no sea numérico, ya que las claves de tabla no deben ser números. En caso de ser numérico, se genera un error y se retorna un array con el mensaje de error.
- Se procesa el parámetro
-
Generación de columnas:
- La función invoca
ajusta_columnas_completas()
para ajustar las columnas proporcionadas en$columnas
y$columnas_sql
, de acuerdo con las reglas definidas en el modelo y la tabla indicada por$key
. - Si ocurre un error durante el ajuste de columnas, se genera un mensaje de error y se retorna un array de error.
- La función invoca
-
Retorno de las columnas:
- Si el proceso es exitoso, la función retorna la cadena de columnas SQL ajustadas para su uso en la consulta.
Ejemplos
$columnas = "id, nombre, email";
$columnas_en_bruto = false;
$columnas_sql = ['nombre_completo'];
$key = "usuarios";
$modelo = new modelo_base();
$resultado = $this->genera_columna_tabla($columnas, $columnas_en_bruto, $columnas_sql, $key, $modelo);
// Resultado esperado:
// Una cadena con las columnas ajustadas, como "id, nombre, email, nombre_completo".
// Un array de error si ocurre algún problema.
Código de la Función
private function genera_columna_tabla(string $columnas, bool $columnas_en_bruto, array $columnas_sql,
string $key, modelo_base $modelo): array|string
{
$key = str_replace('models\\','',$key);
if(is_numeric($key)){
return $this->error->error(mensaje: 'Error $key no puede ser un numero',data: $key, es_final: true);
}
$result = $this->ajusta_columnas_completas(columnas: $columnas, columnas_en_bruto: $columnas_en_bruto,
columnas_sql: $columnas_sql, modelo: $modelo, tabla: $key, tabla_renombrada: '');
if(errores::$error){
return $this->error->error(mensaje: 'Error al integrar columnas', data: $result);
}
return (string)$result;
}