administrador.base.orm.where.where_mayus - gamboamartin/administrador GitHub Wiki
where_mayus
La función where_mayus
se encarga de validar y modificar el valor de la propiedad where
dentro de un objeto stdClass
llamado $complemento
. Se asegura de que la cláusula where
esté en mayúsculas y correctamente formada. Si la validación falla, devuelve un array con un mensaje de error.
Signatura
private function where_mayus(stdClass $complemento): array|stdClass
Parámetros
stdClass $complemento
- Tipo:
stdClass
- Descripción: Un objeto que debe contener la propiedad
where
. Si la propiedad no está definida, la función la crea con un valor vacío. La función verifica y transforma este valor según las reglas definidas.
Retorna
array|stdClass
- Tipo:
array
ostdClass
- Descripción:
- Si la validación es exitosa, la función devuelve el objeto
$complemento
modificado, con la propiedadwhere
en mayúsculas si es necesario. - Si hay algún error, como que el
where
no esté correctamente formado o tenga un valor inválido, devuelve un array de error con detalles del problema.
- Si la validación es exitosa, la función devuelve el objeto
Explicación Detallada
-
Verificación de la propiedad
where
:- Si el objeto
$complemento
no tiene definida la propiedadwhere
, se inicializa con una cadena vacía (''
).
- Si el objeto
-
Limpieza de espacios en blanco:
- Se eliminan los espacios en blanco al principio y al final de la propiedad
where
usandotrim()
.
- Se eliminan los espacios en blanco al principio y al final de la propiedad
-
Conversión a mayúsculas:
- Si la cláusula
where
no está vacía después de la limpieza, se convierte a mayúsculas usandostrtoupper()
.
- Si la cláusula
-
Validación de la cláusula
where
:- Si la cláusula
where
no está vacía y no es exactamente igual a'WHERE'
, se devuelve un array de error indicando que la cláusulawhere
está mal aplicada.
- Si la cláusula
-
Retorno del objeto
complemento
:- Si todas las validaciones son exitosas, el objeto
$complemento
se devuelve con las modificaciones realizadas (si aplica).
- Si todas las validaciones son exitosas, el objeto
Ejemplos
$complemento = new stdClass();
$complemento->where = " where id = 1";
$resultado = $this->where_mayus($complemento);
// Resultado esperado:
// $complemento->where = "WHERE ID = 1";
Código de la Función
private function where_mayus(stdClass $complemento): array|stdClass
{
if(!isset($complemento->where)){
$complemento->where = '';
}
$complemento->where = trim($complemento->where);
if($complemento->where !== '' ){
$complemento->where = strtoupper($complemento->where);
}
if($complemento->where!=='' && $complemento->where !=='WHERE'){
return $this->error->error(mensaje: 'Error where mal aplicado',data: $complemento->where, es_final: true);
}
return $complemento;
}