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

masteringlaravel logo
Laravel Code Review

Get expert guidance in a few days with a Laravel code review

Visit Laravel Code Review

The latest

View all →
Look What You Helped Me Build image

Look What You Helped Me Build

Read article
BashBox: A Sandboxed Bash Interpreter for AI Agents in PHP image

BashBox: A Sandboxed Bash Interpreter for AI Agents in PHP

Read article
Running Laravel's Scheduler on Multiple Servers image

Running Laravel's Scheduler on Multiple Servers

Read article
Laravel Fake Assertions Now Accept Property Arrays image

Laravel Fake Assertions Now Accept Property Arrays

Read article
Route::query() and Model defaults() in Laravel 13.35 image

Route::query() and Model defaults() in Laravel 13.35

Read article
Laravel AI SDK 1.1 Adds Agent Skills and Cohere Chat image

Laravel AI SDK 1.1 Adds Agent Skills and Cohere Chat

Read article