也门开源 / laravel-wallet
Laravel钱包是一个具有表达性语法和提供优质开发的包,简单实现存款、取款、交易和余额。
v1.2.0
2023-12-21 13:53 UTC
Requires
- illuminate/support: ^8.0|^9.0|^10.0
Requires (Dev)
- illuminate/testing: ^8.83
- orchestra/testbench: ^7.0|^8.0
- phpunit/phpunit: ^9.5
README
Laravel钱包
Laravel钱包是一个具有表达性语法和提供优质开发的包,简单实现存款、取款、交易和余额。
要求
此包与Laravel v8进行了测试,可能在Laravel v7、v6或v5上无法正常工作。
安装
使用composer安装此包
composer require yemenopensource/laravel-wallet
配置您的需求
如果您想使用默认配置,可以跳过此步骤,但可以通过运行以下命令发布钱包配置:
php artisan vendor:publish --provider="YemeniOpenSource\LaravelWallet\WalletServiceProvider" --tag=config
这将合并config/wallet.php
配置文件到您的根config
目录。在迁移数据库之前,您可以自由修改它。
数据库迁移
之后,安装钱包表
php artisan migrate
如果您想添加自定义功能,可以发布迁移
php artisan vendor:publish --provider="YemeniOpenSource\LaravelWallet\WalletServiceProvider" --tag=migrations
Laravel将使用在database/migrations
中发布的迁移。
设置
将HasWallet
特质添加到您想添加钱包功能的任何模型中,例如User
模型。
use YemeniOpenSource\LaravelWallet\Traits\HasWallet; class User extends Model { use HasWallet; //... }
基本用法
例如,您可以创建钱包和交易,为您的User
模型创建钱包。
// The wallet balance initially will be [0] $user = User::first(); $user->wallet->balance; // 0 // This will add to the wallet balance as passed amount. $user->wallet->deposit(643.646); $user->wallet->balance; // 643.6460 // This will subtract from the wallet balance as passed amount. $user->wallet->withdraw(168.545); $user->wallet->balance; // 475.1010 // It will throw [UnacceptedTransactionException] exception if passed amount greater wallet balance $user->wallet->withdraw(500); $user->wallet->balance; // UnacceptedTransactionException // If you want to force withdraw, use [forceWithdraw] $user->wallet->forceWithdraw(500); $user->wallet->balance; // -24.8990
如果您不希望出现[UnacceptedTransactionException],可以将
wallet.disable_insufficient_exception
配置值更改为禁用异常,或在.env
中设置WALLET_DISABLE_INSUFFICIENT_EXCEPTION
为true
。
高级用法
您可以轻松地为交易添加元信息以满足您的需求。例如
$user = User::first(); $user->wallet->deposit(100, ['currency' => 'USD', 'bank' => 'TEST BANK']); $user->wallet->withdraw(64, ['currency' => 'USD', 'description' => 'Purchase of Item #101']); $user->wallet->withdraw(64, ['currency' => 'USD', 'transfer' => 'Western union tracking number #101']);
贷方
数字货币矢量图由fullvector创建 - www.freepik.com
贷方
MIT许可证(MIT)。有关更多信息,请参阅MIT许可证文件。