notchafrica/balance

维护eloquent模型中余额变动的历史。这个简单的包将跟踪您的模型余额。您可以增加、减少、重置和设置余额。还可以检查模型是否具有正余额或无余额。

1.0 2023-09-07 11:21 UTC

This package is auto-updated.

Last update: 2024-09-07 13:36:45 UTC


README

维护eloquent模型中余额变动的历史。这个简单的包将跟踪您的模型余额。您可以增加、减少、重置和设置余额。还可以检查模型是否具有正余额或无余额。

安装

您可以通过composer安装此包

composer require mreduar/laravel-balance

您可以使用以下命令发布和运行迁移

php artisan vendor:publish --provider="MrEduar\Balance\BalanceServiceProvider" --tag="migrations"
php artisan migrate

您可以使用以下命令发布配置文件

php artisan vendor:publish --provider="MrEduar\Balance\BalanceServiceProvider" --tag="config"

这是已发布配置文件的内容

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Table name
    |--------------------------------------------------------------------------
    |
    | Table name to use to store balance history transactions.
    |
    */

    'table' => 'balance_history',

];

用法

添加HasBalance特性将使Model启用余额功能。

use Illuminate\Foundation\Auth\User as Authenticatable;
use MrEduar\Balance\HasBalance;

class User extends Authenticatable
{
    use HasBalance;
}

基本操作

$user->increaseBalance(2575);
$user->balance; // 25.75

$user->decreaseBalance(2575);
$user->balance; // 0

$user->modifyBalance(-2537);
$user->balance; // -25.37

$user->modifyBalance(3037);
$user->balance; // 5

重置余额

还可以重置余额并直接设置新值。

$user->resetBalance(); // 0

$user->resetBalance(10); // 10

检查模型是否有余额

检查是否有正余额或大于提供的余额。

$user->hasBalance();
$user->hasBalance(2575);

检查模型是否有余额

检查是否还有余额。

$user->hasNoBalance();

添加引用和描述到历史

通过传递一个包含引用模型数据和描述的数组作为第二个参数,可以添加对上述任何方法的引用。

use App\Models\Podcast;

$podcast = Podcast::find(1);

$user->decreaseBalance(2575, [
    'description' => 'Purchase of a podcast.',
    'reference' => $podcast
]);

$user->increaseBalance(2575, [
    'description' => 'Paypal Deposit.'
]);

贡献

有关详细信息,请参阅CONTRIBUTING

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件