Conversión de valores en colecciones con el método wrap de Laravel

  • Publicado el 24 enero, 2025
  • Palabras: 55

La conversión de valores en colecciones se vuelve sencilla con el método Collection::wrap de Laravel. Esta utilidad versátil garantiza que siempre trabajes con una colección, independientemente del tipo de entrada.

Conversión de valores en colecciones con el método wrap de Laravel

#Uso básico

El método estático wrap() envuelve el valor dado en una colección cuando corresponde:

 

use IlluminateSupportCollection;

// Wrap a single value
$collection = Collection::wrap('John Doe');
// Result: ['John Doe']

// Wrap an array
$collection = Collection::wrap(['John Doe']);
// Result: ['John Doe']

// Wrap an existing collection
$collection = Collection::wrap(collect('John Doe'));
// Result: ['John Doe']

 

#Ejemplo práctico

A continuación se explica cómo podría usarlo en un servicio de procesamiento de datos:

 

class DataProcessor
{
    public function processItems($items)
    {
        return Collection::wrap($items)
            ->map(fn($item) => $this->formatItem($item))
            ->filter()
            ->values();
    }
    
    public function addTags($entity, $tags)
    {
        $existingTags = $entity->tags;
        $newTags = Collection::wrap($tags)
            ->unique()
            ->diff($existingTags);
            
        $entity->tags()->attach($newTags);
        
        return $entity;
    }

    public function processSearchResults($results)
    {
        return Collection::wrap($results)
            ->map(fn($result) => [
                'id' => $result->id,
                'title' => $result->title,
                'url' => $result->url
            ])
            ->sortBy('title');
    }
}

// Usage
class SearchController extends Controller
{
    public function search(Request $request, DataProcessor $processor)
    {
        $results = SearchService::find($request->query);
        return $processor->processSearchResults($results);
    }
}

 

El método wrap garantiza un manejo consistente de la colección independientemente del tipo de entrada, lo que hace que su código sea más confiable y flexible.

Antonio Jenaro
Antonio Jenaro

Web Developer

Archivado en:

Fuente: Harris Raftopoulos

Artículos relacionados

Mejorando el manejo de peticiones de entradas en Laravel con colecciones
94

Mejorando el manejo de peticiones de entradas en Laravel con colecciones

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

Ordenar claves en una colección en Laravel usando sortKeysUsing

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

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

Inicia la conversación

Hazte miembro de Antonio Jenaro para comenzar a comentar.

Regístrate ahora

¿Ya estás registrado? Inicia sesión