cyberwolfstudio / laravel-balance
在eloquent模型中维护平衡变动的历史记录。这个简单的包会跟踪您模型的余额。您可以增加、减少、重置和设置余额。还可以检查模型是否有正余额或无余额。
1.1.0
2024-08-23 19:16 UTC
Requires
- php: ^8.0
- cknow/laravel-money: ^8.0
- illuminate/config: ^9.0|^10.0|^11.0
- illuminate/database: ^9.0|^10.0|^11.0
- illuminate/support: ^9.0|^10.0|^11.0
Requires (Dev)
- nunomaduro/collision: ^8.4
- orchestra/testbench: ^9.3
- pestphp/pest: ^2.35
- pestphp/pest-plugin-laravel: ^2.4
README
在eloquent模型中维护平衡变动的历史记录。这个简单的包会跟踪您模型的余额。您可以增加、减少、重置和设置余额。还可以检查模型是否有正余额或无余额。
安装
您可以通过composer安装此包
composer require cyberwolfstudio/laravel-balance
您可以使用以下命令发布和运行迁移
php artisan vendor:publish --provider="Batv45\Balance\BalanceServiceProvider" --tag="migrations" php artisan migrate
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="Batv45\Balance\BalanceServiceProvider" --tag="config"
这是发布配置文件的内容
<?php
return [
/*
|--------------------------------------------------------------------------
| Table name
|--------------------------------------------------------------------------
|
| Table name to use to store balance history transactions.
|
*/
'table' => 'balance_history',
'model' => \Batv45\Balance\Balance::class,
/**
* ex: 1000 or 100
* type: int
*/
'multiplier' => 1000
];
用法
添加 HasBalance
特性将在模型上启用余额功能。
use Illuminate\Foundation\Auth\User as Authenticatable; use Batv45\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)。请参阅许可证文件以获取更多信息。