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

  1. 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.
  2. 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.
  3. 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;
    }