Laravel Tutorials

Convert Any Value to Collections with Laravel's Collection::wrap Method

Published
Convert Any Value to Collections with Laravel's Collection::wrap Method image

Laravel's Collection::wrap method provides seamless conversion of various data types into collections, ensuring consistent collection handling regardless of input format.

The wrap method handles different value types gracefully:

use Illuminate\Support\Collection;
 
// Wrap a single value
$collection = Collection::wrap('Alice Smith');
// Result: ['Alice Smith']
 
// Wrap an array
$collection = Collection::wrap(['Alice Smith']);
// Result: ['Alice Smith']
 
// Wrap an existing collection
$collection = Collection::wrap(collect('Alice Smith'));
// Result: ['Alice Smith']

Here's how you might use it in an email notification service:

class NotificationService
{
public function sendEmails($recipients, $message)
{
return Collection::wrap($recipients)
->map(fn($email) => $this->validateEmail($email))
->filter()
->each(fn($email) => $this->dispatch($email, $message));
}
 
public function assignCategories($product, $categories)
{
$currentCategories = $product->categories;
$newCategories = Collection::wrap($categories)
->unique()
->diff($currentCategories);
 
$product->categories()->sync($newCategories);
 
return $product;
}
 
public function formatNotifications($notifications)
{
return Collection::wrap($notifications)
->map(fn($notification) => [
'id' => $notification->id,
'message' => $notification->content,
'timestamp' => $notification->created_at
])
->sortByDesc('timestamp');
}
}
 
class AlertController extends Controller
{
public function broadcast(Request $request, NotificationService $service)
{
$alerts = AlertService::latest($request->limit);
return $service->formatNotifications($alerts);
}
}

The wrap method ensures consistent collection handling regardless of input type, making your code more reliable and flexible.

Harris Raftopoulos photo

Senior Software Engineer • Staff & Educator @ Laravel News • Co-organizer @ Laravel Greece Meetup

Sponsored

serpapi logo
SerpApi

The Web Search API for Your LLM and AI Applications

Visit SerpApi

The latest

View all →
Volker Dusch on the PHP RCE Vulnerabilities and Disclosure image

Volker Dusch on the PHP RCE Vulnerabilities and Disclosure

Read article
Decide with Jev: Turn AI Answers into Decisions with PHP Rules image

Decide with Jev: Turn AI Answers into Decisions with PHP Rules

Read article
Skuul: Open-Source School Management Built on Laravel image

Skuul: Open-Source School Management Built on Laravel

Read article
Laravel Read Replicas: Prevent Stale Reads After a Write image

Laravel Read Replicas: Prevent Stale Reads After a Write

Read article
Screenshot: Capture Images and PDFs with PHP and Laravel image

Screenshot: Capture Images and PDFs with PHP and Laravel

Read article
Reset Sticky Database Connections Between Laravel Queue Jobs image

Reset Sticky Database Connections Between Laravel Queue Jobs

Read article