freshleafmedia / laravel-money-cast

Laravel Money 值的属性转换器

1.0.1 2023-09-27 11:47 UTC

This package is auto-updated.

Last update: 2024-09-27 14:06:08 UTC


README

Laravel 模型的 Money 转换器

概述

此库提供了一个 Laravel 属性转换器,用于将 Money 实例序列化为适合数据库存储的字符串。

安装

composer require freshleafmedia/laravel-money-cast

使用

use Freshleafmedia\MoneyCast\MoneyCast;
use Illuminate\Database\Eloquent\Model;

class MyModel extends Model
{
    // ...

    protected $casts = [
        'cost' => MoneyCast::class,
    ];
    
    // ...
}

保存

$model = new MyModel();
$model->cost = new \Money\Money('100', new \Money\Currency('GBP'));
$model->save(); // 'GBP100' is persisted to the database.

检索

$cost = MyModel::first()->cost; // Money\Money

$cost->getAmount() // '100'
$cost->getCurrency()->getCode() // 'GBP'

十进制金额

请注意,由于 moneyphp/money 的工作方式,金额是以最小单位表示的。例如 GBP100 => £1.00, USD100 => $1.00, JPY100 => ¥100 等。

有关详细信息,请参阅 moneyphp 文档中的 格式化部分

测试

可以通过 composer test 运行单元测试

许可证

请参阅 LICENSE