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 clase modelo_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

  1. 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.
  2. 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.
  3. 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.
  4. Acumulación de columnas:

    • Las columnas ajustadas y renombradas se acumulan en la variable $columnas.
  5. 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;
    }