src.where.campo - gamboamartin/where GitHub Wiki

campo

Esta función procesa el valor de un campo a partir de un array, una cadena de texto o un valor nulo, y escapa cualquier carácter especial utilizando addslashes. Además, verifica que la clave proporcionada no esté vacía.

Signatura

private function campo(array|string|null $data, string $key): string|array

Parámetros

$data (array|string|null): El conjunto de datos del cual se obtendrá el campo. Puede ser un array, una cadena de texto o un valor nulo.

$key (string): La clave que se utilizará para obtener el campo del array $data.

Retorna

  • string|array: La función devuelve el valor del campo escapado con addslashes si la clave es válida. Si la clave está vacía, devuelve un array con detalles del error.

Explicación Detallada

  • Verificación de la clave:

    • Se verifica si la clave $key está vacía.
    • Si $key está vacía, se devuelve un mensaje de error indicando que la clave está vacía.
  • Obtención del campo:

    • Si $data es un array y contiene la clave 'campo', se utiliza ese valor.
    • Si $data no contiene la clave 'campo', se utiliza el valor de $key.
  • Escapado de caracteres especiales:

    • Utiliza addslashes para escapar caracteres especiales en el valor del campo.

Ejemplos

// Ejemplo 1: $data es un array con la clave 'campo'
$data = ['campo' => 'valor'];
$key = 'nombre';
$resultado = $this->campo($data, $key);
echo $resultado; // Imprime: valor

// Ejemplo 2: $data es un array sin la clave 'campo'
$data = ['otro_campo' => 'valor'];
$key = 'nombre';
$resultado = $this->campo($data, $key);
echo $resultado; // Imprime: nombre

// Ejemplo 3: $data es una cadena de texto
$data = 'cadena';
$key = 'nombre';
$resultado = $this->campo($data, $key);
echo $resultado; // Imprime: cadena

// Ejemplo 4: $data es null
$data = null;
$key = 'nombre';
$resultado = $this->campo($data, $key);
echo $resultado; // Imprime: nombre

// Ejemplo 5: $key está vacía
$data = ['campo' => 'valor'];
$key = '';
$resultado = $this->campo($data, $key);
if (is_array($resultado)) {
    echo "Error: " . $resultado['mensaje']; // Imprime: Error: Error key vacio
}

Código de la Función

private function campo(array|string|null $data, string $key):string|array{
        if($key === ''){
            return $this->error->error(mensaje: "Error key vacio",data:  $key, es_final: true);
        }
        $campo = $data['campo'] ?? $key;
        return addslashes($campo);
    }