administrador.base.orm.columnas_envio - gamboamartin/administrador GitHub Wiki

columnas_envio

La función columnas_envio combina dos cadenas SQL que representan columnas para enviar en una consulta. La función decide cuál de las cadenas usar y, si ambas están presentes, las concatena con una coma. Si solo una cadena está presente, la función la retorna directamente.

Signatura

private function columnas_envio(string $columnas_extra_sql, string $columnas_sql): string

Parámetros

$columnas_extra_sql (string): Cadena SQL que representa columnas adicionales para incluir en la consulta.

    • Descripción: Esta cadena se concatena con $columnas_sql si $columnas_sql no está vacía. $columnas_sql (string): Cadena SQL que representa las columnas principales para incluir en la consulta.
    • Descripción: Esta cadena es la base que se usa para construir el resultado final. Si está vacía y $columnas_extra_sql no lo está, se retorna solo $columnas_extra_sql.

Retorna

  • string: La cadena SQL combinada de acuerdo a las siguientes reglas:

    • Si $columnas_sql está vacío y $columnas_extra_sql no lo está, se retorna $columnas_extra_sql.
    • Si ambos parámetros tienen valores, se concatena $columnas_sql con $columnas_extra_sql separados por una coma.
    • Si $columnas_sql no está vacío, pero $columnas_extra_sql está vacío, se retorna $columnas_sql.
  • Posibles Resultados

    • Ambas cadenas no están vacías:
      • Entrada: $columnas_extra_sql = 'extra_columna1, extra_columna2';, $columnas_sql = 'columna1, columna2';
      • Salida: 'columna1, columna2, extra_columna1, extra_columna2'
    • Solo $columnas_extra_sql está llena:
      • Entrada: $columnas_extra_sql = 'extra_columna1';, $columnas_sql = '';
      • Salida: 'extra_columna1'
    • Solo $columnas_sql está llena:
      • Entrada: $columnas_extra_sql = '';, $columnas_sql = 'columna1, columna2';
      • Salida: 'columna1, columna2'
    • Ambas cadenas están vacías:
      • Entrada: $columnas_extra_sql = '';, $columnas_sql = '';
      • Salida: '' (cadena vacía)

Explicación Detallada

  • Validación y Combinación:

    • La función primero elimina espacios en blanco al principio y al final de ambas cadenas utilizando trim().
    • Luego, verifica si $columnas_sql está vacío:
      • Si $columnas_sql está vacío:
        • Si $columnas_extra_sql no está vacío, se usa directamente $columnas_extra_sql como la cadena final de columnas.
      • Si $columnas_sql no está vacío:
        • Se establece $columnas_envio inicialmente como $columnas_sql.
        • Si $columnas_extra_sql también tiene valor, se concatena a $columnas_envio con una coma como separador.
  • Construcción del Resultado:

    • El resultado final es una cadena que puede ser:
      • Solo $columnas_extra_sql si $columnas_sql está vacío.
      • La combinación de $columnas_sql y $columnas_extra_sql separados por una coma si ambos tienen valores.
      • Solo $columnas_sql si $columnas_extra_sql está vacío.
  • Retorno

    • string: Retorna la cadena combinada de columnas SQL según las reglas descritas anteriormente.

Ejemplos

$columnas_extra_sql = 'extra_columna1, extra_columna2';
$columnas_sql = 'columna1, columna2';

$resultado = $this->columnas_envio($columnas_extra_sql, $columnas_sql);
// Salida: 'columna1, columna2, extra_columna1, extra_columna2'

$columnas_extra_sql = 'extra_columna1';
$columnas_sql = '';

$resultado = $this->columnas_envio($columnas_extra_sql, $columnas_sql);
// Salida: 'extra_columna1'

$columnas_extra_sql = '';
$columnas_sql = 'columna1, columna2';

$resultado = $this->columnas_envio($columnas_extra_sql, $columnas_sql);
// Salida: 'columna1, columna2'

$columnas_extra_sql = '';
$columnas_sql = '';

$resultado = $this->columnas_envio($columnas_extra_sql, $columnas_sql);
// Salida: ''

Código de la Función

private function columnas_envio(string $columnas_extra_sql, string $columnas_sql): string
    {
        if(trim($columnas_sql) === '' &&  trim($columnas_extra_sql) !==''){
            $columnas_envio = $columnas_extra_sql;
        }
        else{
            $columnas_envio = $columnas_sql;
            if($columnas_extra_sql!==''){
                $columnas_envio.=','.$columnas_extra_sql;
            }
        }
        return $columnas_envio;
    }