notchafrica / s2balance
维护eloquent模型中平衡变动的历史。这个简单的包将跟踪您模型的余额。您可以增加、减少、重置和设置余额。还可以检查模型是否有正余额或无余额。
1.2
2023-09-23 17:37 UTC
Requires
- php: ^8.2
- illuminate/support: ^10.0
Requires (Dev)
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^10.0
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)。有关更多信息,请参阅许可证文件