Laravel Advanced & Architecture
5-8 Years (Senior)
Medium
Production Scenario
How do you implement Custom Eloquent Casts with Value Objects in modern Laravel?
Real-World Scenario / Incident Description
A fintech app handles multi-currency amounts (USD, EUR, JPY) and needs to avoid floating point precision errors by casting database integers to immutable `Money` Value Objects.
346 views
•
Updated 1 month ago
Implementing CastsAttributes
class MoneyCast implements CastsAttributes
{
public function get(Model $model, string $key, mixed $value, array $attributes): ?Money
{
return $value !== null ? new Money((int) $value, $attributes['currency'] ?? 'USD') : null;
}
public function set(Model $model, string $key, mixed $value, array $attributes): array
{
if ($value instanceof Money) {
return [$key => $value->getAmountInCents(), 'currency' => $value->getCurrency()];
}
return [$key => (int) $value];
}
}
Related Concepts:
#Eloquent
#Custom Casts
#Value Objects
#DDD
#Fintech
More Laravel Advanced & Architecture Interview Questions
How does Laravel Octane handle state persistence across requests, and how do you prevent catastrophic memory leaks and data bleeding in singletons?
Read →
How do you prevent Deadlocks when processing concurrent financial transactions or inventory deductions across multiple queue workers in Laravel?
Read →
How does the Laravel Service Container resolve dependencies using Reflection, and what are the performance trade-offs in large applications?
Read →
How do you execute Zero-Downtime database migrations on tables with 50+ million rows without locking writes in production Laravel?
Read →
How do you architect Multi-Tenant database isolation in Laravel (Single DB vs Multi DB vs Schema Separation)?
Read →