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

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

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

Mejorando el manejo de peticiones de entradas en Laravel con colecciones

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

Ordenar claves en una colección en Laravel usando sortKeysUsing

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

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