freshleafmedia / laravel-money-cast
Laravel Money 值的属性转换器
1.0.1
2023-09-27 11:47 UTC
Requires
- illuminate/contracts: ^7 || ^8 || ^9 || ^10
- moneyphp/money: ^3.3 || ^4.0
Requires (Dev)
- pestphp/pest: ^1.22
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