
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.

#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.
Fuente: Harris Raftopoulos
Artículos relacionados
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión