helvetitec/laramoney

There is no license information available for the latest version (v1.5.5) of this package.

PHPMoney implementation for Laravel

Maintainers

Package info

github.com/Helvetitec/laramoney

pkg:composer/helvetitec/laramoney

Transparency log

Statistics

Installs: 2 086

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.5.5 2026-08-24 20:45 UTC

README

MoneyPHP implementation for Laravel

Installation

Install from composer:

composer require helvetitec/laramoney

Usage

  1. Use LaraMoneyCast to cast values to a json field like ['amount' => 100, 'currency' => 'brl']
  2. Use LaraMoneySimpleCast to cast values directly to an integer field with an optional 'currency' field inside the model.
  3. Use Money facade for anything else

LaraMoneyCast

It's easy to store and receive data from the database with the LaraMoneyCast. The value can either be NULL, an array of ['amount', 'currency'], a numeric value or a \Money\Money object.

The database field needs to be a JSON (compatible) field.

Add to the Models cast:

protected $casts = [
    'price' => LaraMoneyCast::class
];

LaraMoneySimpleCast

The simple cast will store the value as a string, not as a JSON object for easier sorting etc. The value can either be NULL, an array of ['amount', 'currency'], a numeric value or a \Money\Money object.

The database field for price and currency needs to be a string.

Add to the Models cast:

protected $fillable = [
    'price',
    'currency' //This is the default field, but can be changed inside the config field 'model_currency_field'.
];

protected $casts = [
    'price' => LaraMoneySimpleCast::class, //Will automatically set the 'currency' field as well
];