administrador.base.orm.where.limpia_filtros - gamboamartin/administrador GitHub Wiki
limpia_filtros
La función limpia_filtros
toma un objeto de filtros y un array de claves para filtrar, validando que cada clave esté presente y no vacía en el objeto de filtros. Si una clave no está definida, se asigna un valor vacío (''
). Además, elimina cualquier espacio en blanco al principio y al final de los valores de los filtros. Si hay algún error en el proceso de validación, se devuelve un array de error detallado.
Signatura
final public function limpia_filtros(stdClass $filtros, array $keys_data_filter): stdClass|array
Parámetros
stdClass $filtros
- Tipo:
stdClass
- Descripción: Este parámetro es un objeto que contiene los filtros que se desean limpiar o completar. Las claves de este objeto deben corresponder a las claves especificadas en
$keys_data_filter
.
array $keys_data_filter
- Tipo:
array
- Descripción: Un array de claves que deben estar presentes en el objeto
$filtros
. Si alguna clave no está presente, se añade con un valor vacío. Cada clave también es limpiada de espacios en blanco al principio y al final.
Retorna
stdClass|array
- Tipo:
stdClass
oarray
- Descripción: Si la operación es exitosa, la función devuelve el objeto
$filtros
modificado con las claves limpias y los valores ajustados. Si ocurre un error, como que alguna clave esté vacía, se devuelve un array de error con detalles sobre la causa del fallo.
Explicación Detallada
-
Validación inicial de claves:
- Recorre cada clave en el array
$keys_data_filter
y la limpia de espacios en blanco usandotrim()
. - Si alguna clave está vacía después de la limpieza, se devuelve un array de error indicando que una clave está vacía.
- Recorre cada clave en el array
-
Verificación de la existencia de claves en el objeto de filtros:
- Si alguna clave del array
$keys_data_filter
no existe en el objeto$filtros
, se asigna un valor vacío (''
) a esa clave.
- Si alguna clave del array
-
Limpieza de valores en el objeto de filtros:
- Una vez que todas las claves están presentes, se recorre nuevamente el array
$keys_data_filter
y se limpia el valor de cada clave en el objeto$filtros
usandotrim()
para eliminar los espacios en blanco al principio y al final.
- Una vez que todas las claves están presentes, se recorre nuevamente el array
Ejemplos
$filtros = new stdClass();
$filtros->nombre = " Juan ";
$filtros->apellido = "Perez";
$keys_data_filter = ['nombre', 'apellido', 'edad'];
$resultado = $this->limpia_filtros($filtros, $keys_data_filter);
// Resultado esperado:
// $filtros->nombre = "Juan";
// $filtros->apellido = "Perez";
// $filtros->edad = "";
Código de la Función
inal public function limpia_filtros(stdClass $filtros, array $keys_data_filter): stdClass|array
{
foreach($keys_data_filter as $key){
$key = trim($key);
if($key === ''){
return $this->error->error(mensaje: 'Error el key esta vacio', data: $keys_data_filter, es_final: true);
}
if(!isset($filtros->$key)){
$filtros->$key = '';
}
}
foreach($keys_data_filter as $key){
$filtros->$key = trim($filtros->$key);
}
return $filtros;
}