AsCurrency cast converts currency code strings (e.g., "USD", "EUR") stored in your database to Currency objects in your Laravel models. This provides type safety and access to currency-related methods throughout your application.
How It Works
The cast automatically converts between strings and Currency objects:- Storage:
Currency::of('USD')→"USD"(stored as string) - Retrieval:
"USD"→Currency::of('USD')(Currency object)
Implementation
TheAsCurrency class implements the CastsAttributes interface:
AsCurrency.php
Basic Usage
Create database migration
Use
string('currency', 3) for standard ISO 4217 codes. For cryptocurrencies, you may need longer length like string('currency', 10).Use Cases
- With Money Casts
- Multi-Currency Catalog
- Currency Configuration
- Standalone Currency Storage
Available Currency Methods
Once cast to a Currency object, you have access to all currency information:Querying by Currency
Validation
Validate currency codes in your requests:Complete Example
Error Handling
The cast throws exceptions for invalid data:Best Practices
Benefits
Type Safety
Work with Currency objects instead of strings
Rich API
Access currency metadata and formatting rules
Validation
Automatic validation of currency codes
Integration
Works seamlessly with Money casts
Next Steps
AsIntegerMoney Cast
Store money in minor units (recommended)
Eloquent Overview
Back to Eloquent integration overview