administrador.base.orm.columnas.carga_columna_renombre - gamboamartin/administrador GitHub Wiki
carga_columna_renombre
La función carga_columna_renombre ajusta las columnas de una consulta SQL, renombrando las tablas según sea necesario. Valida los datos proporcionados en $data y asegura que las columnas se ajusten correctamente con base en el modelo y las tablas especificadas. Devuelve una cadena con las columnas ajustadas o un array de error si alguna validación o ajuste falla.
Signatura
private function carga_columna_renombre(string $columnas, array $columnas_sql, array $data, modelo_base $modelo, string $tabla): array|string
Parámetros
-
string $columnas
:
Cadena que contiene las columnas iniciales que se deben ajustar. -
array $columnas_sql
:
Array que contiene las columnas SQL originales de la consulta. -
array $data
:
Array que contiene los datos necesarios para el renombramiento de la tabla. Debe incluir al menos la clave nombre_original. -
modelo_base $modelo
:
Instancia del modelo base que contiene la lógica de la consulta. -
string $tabla
:
Nombre de la tabla a la que se le debe renombrar y ajustar las columnas.
Explicación Detallada
-
Validación de los Datos:
- Se utiliza la función valida_data_columna para validar que el array $data contenga las claves necesarias (nombre_original) y que el nombre de la tabla no sea numérico.
-
Ajuste de Columnas:
- Se llama a la función ajusta_columnas_completas para ajustar las columnas basadas en el modelo, las columnas SQL originales y el renombramiento de la tabla según los datos proporcionados.
-
Retorno del Resultado:
- Si el ajuste de columnas es exitoso, se devuelve una cadena con las columnas ajustadas. Si ocurre un error durante el proceso, se devuelve un array con el error.
Ejemplos
$columnas = "usuarios.id, usuarios.nombre";
$columnas_sql = ["usuarios.id", "usuarios.nombre"];
$data = ['nombre_original' => 'usuarios'];
$tabla = 'usuarios_renombrado';
$resultado = $this->carga_columna_renombre($columnas, $columnas_sql, $data, $modelo, $tabla);
if (is_array($resultado)) {
// Manejo de error
print_r($resultado);
} else {
// Resultado exitoso: columnas ajustadas
echo $resultado;
}
Código de la Función
private function carga_columna_renombre(string $columnas, array $columnas_sql, array $data, modelo_base $modelo,
string $tabla): array|string
{
$valida = $this->validacion->valida_data_columna(data: $data,tabla: $tabla);
if(errores::$error){
return $this->error->error(mensaje: 'Error al validar data', data: $valida);
}
$r_columnas = $this->ajusta_columnas_completas(columnas: $columnas, columnas_en_bruto: false,
columnas_sql: $columnas_sql, modelo: $modelo, tabla: $data['nombre_original'],
tabla_renombrada: $tabla);
if(errores::$error){
return $this->error->error(mensaje: 'Error al integrar columnas', data: $r_columnas);
}
return (string)$r_columnas;
}