mreduar/laravel-balance

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

v1.4.0 2023-10-10 17:03 UTC

This package is auto-updated.

Last update: 2024-09-10 19:11:55 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特性将使模型启用余额功能。

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)。有关更多信息,请参阅许可证文件