geowrgetudor / laravel-balance
一个用于Laravel的信用系统/余额系统。
0.2.2
2024-05-26 21:50 UTC
Requires
- php: ^8.1|^8.2|^8.3
- illuminate/contracts: ^10.0|^11.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.8|^8.0
- orchestra/testbench: ^8.8|^9.0
- pestphp/pest: ^2.20
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
README
这是一个小巧的包,它可以添加您可能因各种原因需要的信用系统。
- 根据用户的活动奖励用户
- 以信用而非真实货币的形式奖励
- 为推荐奖励信用
- 等等。
安装
通过composer安装此包
composer require geowrgetudor/laravel-balance
使用以下命令发布并运行迁移
php artisan vendor:publish --tag="balance-migrations"
php artisan migrate
如果您决定更改默认迁移表名,请确保发布配置文件并在此处更改表名
php artisan vendor:publish --tag="balance-config"
这是发布配置文件的内容
return [ /** * Default table name. * If you have changed the migration, make sure you change this too. */ 'table' => 'balances' ];
准备您的模型
将HasBalance
特质添加到您需要的任何模型中。
use Geow\Balance\Traits\HasBalance; class User extends Model { // ... use HasBalance; }
用法
// Set balance (similar to increaseCredit() method - just a naming difference) $user->setCredit(2000); // Get balance $user->credit; // Increase balance $user->increaseCredit(1000); // Decrease balance $user->decreaseCredit(500); // Reset balance to 0 $user->resetCredit(); // Check if the user has balance $user->hasCredit(); // Passing a reason for setting/increasing/deacreasing the balance $user->setCredit(20000, 'Signup bonus'); $user->increaseCredit(1000, 'Awarded credits'); $user->decreaseCredit(250, 'Service usage'); // Get balance as currency $user->increaseCredit(1000); $user->credit; // returns 1000 (represeting cents) $user->creditCurrency; // returns $10.00 (representing dollars) // If you need to display using a different currency $user->withCurrency('EUR')->creditCurrency // returns €10.00 // Getting all model related transactions (increases and decresed in balance) $user->credits; // Returns \Illuminate\Database\Eloquent\Collection
测试
composer test
变更日志
请参阅变更日志以获取有关最近更改的更多信息。
贡献
请参阅贡献指南以获取详细信息。
安全漏洞
请参阅我们的安全策略以了解如何报告安全漏洞。
信用
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。