administrador.base.orm.sql.valida_in - gamboamartin/administrador GitHub Wiki

valida_in

La función valida_in es una función pública que valida la relación entre una llave (nombre de columna) y una lista de valores SQL (values_sql). Verifica que si uno de los parámetros tiene información, el otro también la debe tener. La función está diseñada para prevenir errores en la construcción de consultas SQL IN.

Signatura

final public function valida_in(string $llave, string $values_sql): bool|array

Parámetros

  • string $llave:
    El nombre del campo o columna que se utilizará en la cláusula SQL IN. Esta cadena se valida para asegurar que no esté vacía si se proporciona una lista de valores.

  • string $values_sql:
    Una cadena que representa una lista de valores que se utilizarán en la cláusula SQL IN. Esta cadena se valida para asegurar que no esté vacía si se proporciona una llave.

Retorna

  • bool|array:
    Retorna true si la validación es exitosa. En caso de error, retorna un array de error generado por $this->error->error().

Explicación Detallada

  1. Limpieza de los parámetros:

    • La función elimina los espacios en blanco al inicio y al final de las cadenas $llave y $values_sql utilizando trim().
  2. Validación de la relación entre llave y values_sql:

    • Si la cadena $llave no está vacía, la función verifica que $values_sql también contenga información. Si $values_sql está vacía, se genera un mensaje de error y se retorna un array con el mensaje de error.
    • Si $values_sql contiene información, la función verifica que $llave no esté vacía. Si $llave está vacía, se genera un mensaje de error y se retorna un array con el mensaje de error.
  3. Retorno del resultado:

    • Si ambas validaciones son exitosas, la función retorna true.

Ejemplos

$llave = 'id_producto';
$values_sql = "'100', '200', '300'";

$resultado = $this->valida_in($llave, $values_sql);

// Resultado esperado:
// true (si la validación es exitosa)
// Un array de error si ocurre algún problema.

Código de la Función

final public function valida_in(string $llave, string $values_sql): bool|array
    {
        $llave = trim($llave);
        $values_sql = trim($values_sql);
        if($llave !== ''){
            if($values_sql ===''){
                return $this->error->error(mensaje: 'Error si llave tiene info values debe tener info',
                    data: $llave, es_final: true);
            }
        }

        if($values_sql !== ''){
            if($llave ===''){
                return $this->error->error(
                    mensaje: 'Error si values_sql tiene info llave debe tener info', data: $values_sql, es_final: true);
            }
        }
        return true;
    }