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

filtros_vacios

La función filtros_vacios verifica si todos los valores de las claves especificadas en un array están vacíos dentro de un objeto stdClass llamado $complemento. Si alguno de los valores no está vacío (después de eliminar espacios en blanco), la función devuelve false. Si todos los valores están vacíos, devuelve true. Si alguna clave no está definida en el objeto, la función la inicializa con una cadena vacía.

Signatura

private function filtros_vacios(stdClass $complemento, array $keys_data_filter): bool

Parámetros

stdClass $complemento

  • Tipo: stdClass
  • Descripción: El objeto que contiene los filtros a validar. Las claves en el array $keys_data_filter se buscan en este objeto para verificar si están vacías.

array $keys_data_filter

  • Tipo: array
  • Descripción: Un array de claves que deben ser verificadas en el objeto $complemento. Cada clave se examina para ver si su valor está vacío (después de aplicar trim()). Si alguna clave no está presente en el objeto, se inicializa con una cadena vacía.

Retorno

bool

  • Tipo: bool
  • Descripción: Devuelve true si todos los valores de las claves especificadas están vacíos. Devuelve false si al menos uno de los valores no está vacío.

Explicación Detallada

  1. Inicialización de valores faltantes:

    • Si alguna de las claves en $keys_data_filter no está definida en el objeto $complemento, se inicializa con una cadena vacía ('').
  2. Verificación de vacíos:

    • La función recorre cada clave en $keys_data_filter. Si el valor asociado a una clave (después de aplicar trim()) no está vacío, la función inmediatamente cambia el valor de la variable $filtros_vacios a false y termina el bucle.
    • Si después de recorrer todas las claves no se encuentran valores no vacíos, la función devuelve true, indicando que todos los filtros están vacíos.

Ejemplos

$complemento = new stdClass();
$complemento->nombre = "  ";  // vacío después de trim
$complemento->edad = "";  // vacío

$keys_data_filter = ['nombre', 'edad', 'ciudad'];

$resultado = $this->filtros_vacios($complemento, $keys_data_filter);

// Resultado esperado: true, ya que todas las claves tienen valores vacíos.

Código de la Función

private function filtros_vacios(stdClass $complemento, array $keys_data_filter): bool
    {
        $filtros_vacios = true;
        foreach ($keys_data_filter as $key) {
            if(!isset($complemento->$key)){
                $complemento->$key = '';
            }

            if (trim($complemento->$key) !== '') {
                $filtros_vacios = false;
                break;
            }
        }
        return $filtros_vacios;
    }