administrador.base.orm.where.where_filtro - gamboamartin/administrador GitHub Wiki
where_filtro
La función where_filtro ajusta y valida la cláusula where en un objeto stdClass llamado $complemento. Primero, llama a la función where_base para inicializar y limpiar la cláusula where, y luego utiliza la función verifica_where para asegurar que la cláusula where esté correctamente respaldada por filtros con contenido. Si ambas validaciones son exitosas, la función ajusta el formato de la cláusula where añadiendo espacios adicionales y devuelve el objeto modificado. Si ocurre algún error en el proceso, devuelve un array con los detalles del error.
Signatura
private function where_filtro(stdClass $complemento, array $key_data_filter): array|stdClass
Parámetros
stdClass $complemento
- Tipo:
stdClass - Descripción: Un objeto que contiene la propiedad
wherey los filtros que deben ser validados. La función ajusta y valida la cláusulawherebasada en los filtros proporcionados.
array $key_data_filter
- Tipo:
array - Descripción: Un array de claves que representan los filtros a validar en el objeto
$complemento. La función se asegura de que al menos uno de estos filtros tenga contenido si la cláusulawhereestá presente.
Retorno
array|stdClass
- Tipo:
arrayostdClass - Descripción:
- Si la operación es exitosa, devuelve el objeto
$complementomodificado, con la cláusulawhereajustada y validada. - Si ocurre un error durante el ajuste o la validación de la cláusula
where, devuelve un array de error con un mensaje y los detalles correspondientes.
- Si la operación es exitosa, devuelve el objeto
Explicación Detallada
-
Ajuste de la cláusula
wheremediantewhere_base:- La función comienza llamando a
where_basepara asegurarse de que la cláusulawhereesté presente, inicializada y en el formato correcto. - Si ocurre un error en
where_base, se captura y se devuelve un array con los detalles del error.
$complemento_r = $this->where_base(complemento: $complemento); if(errores::$error){ return $this->error->error(mensaje: 'Error ajustar where', data: $complemento_r); } - La función comienza llamando a
-
Validación de los filtros mediante
verifica_where:- Después de ajustar la cláusula
where, la función llama averifica_wherepara validar que los filtros especificados en$key_data_filterestén correctamente aplicados. - Si
whereno está vacía, debe haber al menos un filtro con contenido. Si todos los filtros están vacíos, se devuelve un error.
$verifica = $this->verifica_where(complemento: $complemento_r, key_data_filter: $key_data_filter); if(errores::$error){ return $this->error->error(mensaje: 'Error validar where', data: $verifica); } - Después de ajustar la cláusula
-
Ajuste final de la cláusula
where:- Si ambas validaciones son exitosas, la función ajusta el formato de la cláusula
where, añadiendo espacios adicionales antes y después del valor para garantizar un formato consistente en las consultas SQL.
$complemento_r->where = ' ' . $complemento_r->where . ' '; - Si ambas validaciones son exitosas, la función ajusta el formato de la cláusula
-
Retorno del objeto modificado:
- Finalmente, se devuelve el objeto
$complementocon elwhereajustado.
- Finalmente, se devuelve el objeto
Ejemplos
$complemento = new stdClass();
$complemento->where = "where id = 1";
$complemento->nombre = "Juan";
$complemento->edad = " "; // vacío
$keys_data_filter = ['nombre', 'edad'];
$resultado = $this->where_filtro($complemento, $keys_data_filter);
// Resultado esperado:
// $complemento->where = " WHERE ID = 1 ";
Código de la Función
private function where_filtro(stdClass $complemento, array $key_data_filter): array|stdClass
{
$complemento_r = $this->where_base(complemento: $complemento);
if(errores::$error){
return $this->error->error(mensaje: 'Error ajustar where',data: $complemento_r);
}
$verifica = $this->verifica_where(complemento: $complemento_r,key_data_filter: $key_data_filter);
if(errores::$error){
return $this->error->error(mensaje:'Error validar where',data:$verifica);
}
$complemento_r->where = ' '.$complemento_r->where.' ';
return $complemento_r;
}