Eliminar elementos de una colección con el método forget de Laravel

  • Publicado el 27 enero, 2025
  • Palabras: 51

¿Necesitas eliminar elementos de una colección? El método forget de Laravel ofrece una forma sencilla de eliminar elementos por sus claves mientras se modifica la colección original.

Eliminar elementos de una colección con el método forget de Laravel

#Uso básico

El método forget elimina un elemento de la colección por su clave:

 

$collection = collect(['name' => 'taylor', 'framework' => 'laravel']);

// Remove a single key
$collection->forget('name');
// Result: ['framework' => 'laravel']

// Remove multiple keys
$collection->forget(['name', 'framework']);
// Result: []

 

#Ejemplo práctico

A continuación se explica cómo puede usarlo en un administrador de preferencias de usuario:

 

class PreferencesManager
{
    protected $preferences;

    public function __construct(array $preferences)
    {
        $this->preferences = collect($preferences);
    }

    public function resetToDefault(string|array $keys)
    {
        // Directly modifies the preferences collection
        $this->preferences->forget($keys);
        
        return $this;
    }

    public function cleanupTemporarySettings()
    {
        $temporaryKeys = ['temp_theme', 'session_view', 'cache_key'];
        
        $this->preferences->forget($temporaryKeys);
        
        return $this;
    }

    public function removeOutdatedFlags(array $flags)
    {
        // Remove specific feature flags
        $this->preferences
            ->forget(
                collect($flags)
                    ->map(fn($flag) => "feature_flag.{$flag}")
                    ->all()
            );
            
        return $this;
    }
}

// Usage
$manager = new PreferencesManager([
    'theme' => 'dark',
    'notifications' => true,
    'temp_theme' => 'light',
    'feature_flag.beta' => true
]);

$manager->cleanupTemporarySettings()
        ->removeOutdatedFlags(['beta']);

 

A diferencia de otros métodos de recopilación, forget modifica la colección original, lo que lo hace perfecto para la manipulación directa de datos.

 

Antonio Jenaro

Desarrollador backend especializado en PHP y Laravel, con sede en Santander, Cantabria. Más de 15 años de experiencia en el desarrollo de aplicaciones web a medida y en la modernización de código heredado.

Archivado en:

Fuente: Harris Raftopoulos

Artículos relacionados

Personalización de colecciones en Laravel: conozca el atributo CollectedBy
114

Personalización de colecciones en Laravel: conozca el atributo CollectedBy

Cómo organizar colecciones con el método splitIn de Laravel
197

Cómo organizar colecciones con el método splitIn de Laravel

Ordenar claves en una colección en Laravel usando sortKeysUsing
375

Ordenar claves en una colección en Laravel usando sortKeysUsing

Inicia la conversación

Hazte miembro de Antonio Jenaro para comenzar a comentar.

Regístrate ahora

¿Ya estás registrado? Inicia sesión