Laravel Tutorials

Currency Formatting with Laravel's Enhanced Number Helper

Published
Currency Formatting with Laravel's Enhanced Number Helper image

Laravel's Number helper now supports configurable default currencies, simplifying price formatting across different regions and use cases. This enhancement is particularly valuable for applications serving international customers or handling transactions in multiple currencies. Instead of manually managing currency symbols and formats, you can now leverage Laravel's built-in formatting with configurable defaults.

use Illuminate\Support\Number;
// Set application-wide default
Number::useCurrency('EUR');
// Format with default
$price = Number::currency(1000); // €1,000.00
// Temporary override
$usdPrice = Number::currency(1000, in: 'USD'); // $1,000.00

Here's an example of implementing a multi-regional checkout system:

<?php
 
namespace App\Services;
 
use App\Models\Order;
use Illuminate\Support\Number;
 
class PricingService
{
public function formatOrderPrices(Order $order, string $displayCurrency)
{
return Number::withCurrency($displayCurrency, function() use ($order) {
return [
'subtotal' => Number::currency($order->subtotal),
'tax' => Number::currency($order->tax),
'shipping' => Number::currency($order->shipping_cost),
'total' => Number::currency($order->total),
'savings' => $this->calculateDiscounts($order)
];
});
}
 
private function calculateDiscounts(Order $order): array
{
return [
'bulk_discount' => Number::currency($order->bulk_discount),
'loyalty_savings' => Number::currency($order->loyalty_discount),
'total_saved' => Number::currency(
$order->bulk_discount + $order->loyalty_discount
)
];
}
}

The Number helper's enhanced currency formatting capabilities streamline multi-currency support in Laravel applications. It provides flexibility for both application-wide defaults and context-specific currency formatting, making it easier to handle international pricing requirements.

Harris Raftopoulos photo

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

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
Major performance improvements & security patches for Filament v4.12 and v5.7! image

Major performance improvements & security patches for Filament v4.12 and v5.7!

Read article
Laravel Boost Project Rules: Teach Agents Your Conventions image

Laravel Boost Project Rules: Teach Agents Your Conventions

Read article
Extract an Image's Dominant Color in Laravel image

Extract an Image's Dominant Color in Laravel

Read article
Image Dominant Color and HEIC Support in Laravel 13.24 image

Image Dominant Color and HEIC Support in Laravel 13.24

Read article
Official Laravel Zed Extension: LSP for PHP & Blade image

Official Laravel Zed Extension: LSP for PHP & Blade

Read article
Laravel Head: Manage Meta Tags, Open Graph, and JSON-LD image

Laravel Head: Manage Meta Tags, Open Graph, and JSON-LD

Read article