administrador.base.orm.modelo_base.columnas_data - gamboamartin/administrador GitHub Wiki

columnas_data

La función columnas_data es una función privada que organiza y encapsula diferentes partes de una consulta SQL (columnas principales, subconsultas y columnas adicionales) en un objeto stdClass. Esta función se utiliza para estructurar y retornar de manera consistente los datos relacionados con las columnas en una consulta SQL.

Signatura


private function columnas_data(string $columnas_extra_sql, string $columnas_sql, string $sub_querys_sql): stdClass

Parámetros

  • string $columnas_extra_sql:
    Una cadena que contiene las columnas adicionales generadas, normalmente provenientes de subconsultas o cálculos adicionales en la consulta SQL.

  • string $columnas_sql:
    Una cadena que contiene las columnas principales de la consulta SQL.

  • string $sub_querys_sql:
    Una cadena que contiene las subconsultas SQL generadas, que se integrarán en la consulta principal.

Retorno

  • stdClass:
    Retorna un objeto stdClass que contiene las siguientes propiedades:
    • columnas_sql: La cadena que representa las columnas principales de la consulta SQL.
    • sub_querys_sql: La cadena que representa las subconsultas SQL generadas.
    • columnas_extra_sql: La cadena que representa las columnas adicionales generadas.

Explicación Detallada

  1. Limpieza de cadenas:

    • La función limpia las cadenas de entrada ($sub_querys_sql, $columnas_extra_sql, $columnas_sql) utilizando trim() para eliminar cualquier espacio en blanco al inicio y al final.
  2. Creación del objeto stdClass:

    • La función crea un objeto stdClass llamado $columns_data para encapsular los datos relacionados con las columnas de la consulta SQL.
    • Se asignan las propiedades columnas_sql, sub_querys_sql, y columnas_extra_sql a sus respectivos valores dentro del objeto.
  3. Retorno del objeto:

    • La función retorna el objeto stdClass que contiene las columnas principales, las subconsultas y las columnas adicionales en su forma estructurada.

Ejemplos

$columnas_extra_sql = '(SELECT COUNT(*) FROM pedidos WHERE usuario_id = usuarios.id) AS total_pedidos';
$columnas_sql = 'id, nombre, email';
$sub_querys_sql = '(SELECT MAX(fecha) FROM compras WHERE usuario_id = usuarios.id) AS ultima_compra';

$resultado = $this->columnas_data($columnas_extra_sql, $columnas_sql, $sub_querys_sql);

// Resultado esperado:
// Un objeto stdClass con las propiedades `columnas_sql`, `sub_querys_sql`, y `columnas_extra_sql`.

Código de la Función

private function columnas_data(string $columnas_extra_sql, string $columnas_sql, string $sub_querys_sql): stdClass
    {
        $sub_querys_sql = trim($sub_querys_sql);
        $columnas_extra_sql = trim($columnas_extra_sql);
        $columnas_sql = trim($columnas_sql);

        $columns_data = new stdClass();
        $columns_data->columnas_sql = $columnas_sql;
        $columns_data->sub_querys_sql = $sub_querys_sql;
        $columns_data->columnas_extra_sql = $columnas_extra_sql;


        return $columns_data;

    }