roboticsexpert/laravel-decimal

为您的laravel模型添加十进制功能的一种简单方法

1.0.0 2022-02-26 14:38 UTC

This package is not auto-updated.

Last update: 2024-09-22 03:17:24 UTC


README

此包使用php-decimal来处理十进制。您可以通过此链接查看文档

https://php-decimal.io

您可以在PHP项目中使用php-decimal,但如果您需要在模型中拥有十进制,那么您应该在laravel项目中拥有十进制转换。使用此项目,您将获得这些:

此包帮助您在模型中获得Decimal对象,并且在进行类型转换和保存到数据库时不会丢失任何信息。

安装

composer require roboticsexpert/laravel-decimal

使用

安装后,转到您需要添加十进制属性的模型,并在cast数组中添加该字段,如下所示

use Roboticsexpert\LaravelDecimal\DecimalCast;


class YourModel extend Model {
    public $cast=[
        'your_field' => DecimalCast::class,
    ];

}

添加后,您可以像这样设置模型中的值

$value = new \Decimal\Decimal('12345.131123123123123');
$model=new YourModel();
$model->your_filed=$value;
... (other stuff)
$model->save();

获取值时将返回Decimal对象,您可以对其进行任何操作

$model=YourModel::first();
$model->your_filed // \Decimal\Decimal "12345.131123123123123"

//add 123 to your field
$model->your_field=$model->your_field->add('123');

//sub 123 from your field
$model->your_field=$model->your_field->sub('123');

// check php-decimal package for other methods you can use!