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);
}