administrador.base.orm.where.where_base - gamboamartin/administrador GitHub Wiki

where_base

La función where_base se encarga de validar y ajustar la cláusula where dentro de un objeto stdClass llamado $complemento. Si la propiedad where no está definida, la función la inicializa como una cadena vacía y luego la procesa mediante la función where_mayus, que convierte la cláusula a mayúsculas y valida su formato. Si ocurre un error en el proceso, devuelve un array de error con detalles.

Signatura

private function where_base(stdClass $complemento): array|stdClass

Parámetros

stdClass $complemento

  • Tipo: stdClass
  • Descripción: Un objeto que debe contener la propiedad where, la cual es ajustada y validada por la función. Si la propiedad no está definida, se inicializa como una cadena vacía.

Retorno

array|stdClass

  • Tipo: array o stdClass
  • Descripción:
    • Si la operación es exitosa, devuelve el objeto $complemento modificado, con la propiedad where ajustada y validada.
    • Si ocurre algún error durante el proceso de validación o ajuste, devuelve un array con un mensaje de error y los detalles del problema.

Explicación Detallada

  1. Verificación de la propiedad where:

    • Si la propiedad where no está definida en el objeto $complemento, se inicializa con una cadena vacía ('').
  2. Ajuste de where con la función where_mayus:

    • La función delega la validación y el ajuste del campo where a la función where_mayus, la cual convierte la cláusula a mayúsculas y verifica que esté correctamente formada.
    • Si where_mayus retorna un error, se captura y se devuelve un array de error con un mensaje detallado.
  3. Retorno del objeto complemento ajustado:

    • Si no se produce ningún error, la función retorna el objeto $complemento modificado y validado.

Ejemplos

$complemento = new stdClass();
$complemento->where = " where id = 1";

$resultado = $this->where_base($complemento);

// Resultado esperado:
// $complemento->where = "WHERE ID = 1";

Código de la Función

private function where_base(stdClass $complemento): array|stdClass
    {
        if(!isset($complemento->where)){
            $complemento->where = '';
        }
        $complemento_r = $this->where_mayus(complemento: $complemento);
        if(errores::$error){
            return $this->error->error(mensaje: 'Error ajustar where',data: $complemento_r);
        }
        return $complemento_r;
    }