administrador.base.orm.columnas.columnas_renombre - gamboamartin/administrador GitHub Wiki
columnas_renombre
La función columnas_renombre
es una función privada que ajusta y renombra las columnas SQL para un conjunto de tablas, basándose en un array de nombres alternativos (renombres). Esta función es útil para personalizar la salida de columnas en consultas SQL, asegurando que las columnas se ajusten a los nombres de tablas renombradas según sea necesario.
Signatura
private function columnas_renombre(string $columnas, array $columnas_sql, modelo_base $modelo, array $renombres): array|string
Parámetros
-
string $columnas
:
Una cadena que contiene las columnas SQL iniciales que se deben procesar y ajustar para su uso en la consulta SQL. -
array $columnas_sql
:
Un array que contiene columnas SQL adicionales o personalizadas que pueden ser integradas en la cadena resultante. -
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. -
array $renombres
:
Un array que contiene las tablas y los nombres alternativos (renombres) que deben ser aplicados. Las claves del array son los nombres de las tablas, y los valores son arrays que contienen la información relacionada con el renombrado de columnas.
Retorno
array|string
:
Retorna una cadena que representa las columnas SQL ajustadas y renombradas para su uso en la consulta. En caso de error, retorna un array de error generado por$this->error->error()
.
Explicación Detallada
-
Iteración sobre los renombres:
- La función itera sobre cada par clave-valor en
$renombres
, donde la clave es el nombre de la tabla ($tabla
) y el valor es un array ($data
) que contiene la información relacionada con el renombrado.
- La función itera sobre cada par clave-valor en
-
Validación del formato de datos:
- Se valida que cada valor (
$data
) sea un array. Si no lo es, se genera un error indicando que los datos deben ser un array y se retorna un array con el mensaje de error.
- Se valida que cada valor (
-
Carga de columnas renombradas:
- Para cada tabla, se llama a la función
carga_columna_renombre()
para ajustar y renombrar las columnas según los datos proporcionados en$data
. - Si ocurre un error durante la integración de las columnas, se genera un mensaje de error y se retorna un array de error.
- Para cada tabla, se llama a la función
-
Acumulación de columnas:
- Las columnas ajustadas y renombradas se acumulan en la variable
$columnas
.
- Las columnas ajustadas y renombradas se acumulan en la variable
-
Retorno de las columnas ajustadas:
- Si el proceso es exitoso, la función retorna la cadena de columnas SQL ajustadas y renombradas.
Ejemplos
$columnas = "id, nombre, email";
$columnas_sql = ['nombre_completo'];
$modelo = new modelo_base();
$renombres = [
'usuarios' => ['renombre' => 'usuarios_activos'],
'pedidos' => ['renombre' => 'ordenes']
];
$resultado = $this->columnas_renombre($columnas, $columnas_sql, $modelo, $renombres);
// Resultado esperado:
// Una cadena con las columnas ajustadas y renombradas para las tablas 'usuarios_activos' y 'ordenes'.
// Un array de error si ocurre algún problema.
Código de la Función
private function columnas_renombre(string $columnas, array $columnas_sql, modelo_base $modelo,
array $renombres): array|string
{
foreach($renombres as $tabla=>$data){
if(!is_array($data)){
return $this->error->error(mensaje: 'Error data debe ser array '.$tabla,data: $data, es_final: true);
}
$r_columnas = $this->carga_columna_renombre(columnas: $columnas, columnas_sql: $columnas_sql,
data: $data, modelo: $modelo, tabla: $tabla);
if(errores::$error){
return $this->error->error(mensaje: 'Error al integrar columnas', data: $r_columnas);
}
$columnas = (string)$r_columnas;
}
return $columnas;
}