algeriany / 钱包
钱包
v1.0.0
2024-09-24 19:00 UTC
README
此包为Laravel应用程序提供了一个简单的钱包管理系统。它允许用户创建钱包,管理资金,并在钱包之间转账。
目录
安装
要安装此包,请运行以下命令
composer require algeriany/wallet
配置
安装后,您可能希望使用以下命令发布配置文件
php artisan vendor:publish --provider="algeriany\wallet\WalletServiceProvider" --tag=models php artisan vendor:publish --provider="algeriany\wallet\WalletServiceProvider" --tag=migrations
使用
创建钱包
要为使用 Walletable
特性的用户或模型创建钱包,您可以这样做
use algeriany\wallet\Models\Wallet; use algeriany\wallet\Services\WalletService; // Assuming $user is an instance of a model that uses the Walletable trait $walletService = new WalletService(); $wallet = $walletService->createWallet($user, 100.00); // Initialize with $100
添加资金
您可以向现有的钱包添加资金
$walletService->addFunds($wallet, 50.00); // Add $50
扣除资金
要从钱包中扣除资金
try { $walletService->deductFunds($wallet, 20.00); // Deduct $20 } catch (\Exception $e) { echo $e->getMessage(); // Handle insufficient funds exception }
转账资金
要将资金从钱包转移到另一个钱包
$fromWallet = Wallet::find($fromWalletId); $toWallet = Wallet::find($toWalletId); try { $walletService->transferFunds($fromWallet, $toWallet, 30.00); // Transfer $30 } catch (\Exception $e) { echo $e->getMessage(); // Handle exceptions }
数据库迁移
此包包括创建 wallets
和 wallet_transfers
表的迁移。要运行迁移,请执行
php artisan migrate
迁移结构
钱包表
id
:钱包的唯一标识符。wallet_id
:钱包的唯一字符串标识符。walletable_id
:钱包所有者(用户或模型)的ID。walletable_type
:钱包所有者的类型(多态关系)。balance
:钱包余额。created_at
:创建钱包的日期时间戳。updated_at
:最后更新日期时间戳。
钱包转账表
id
:转账的唯一标识符。from_wallet_id
:转账资金来源钱包的ID。to_wallet_id
:转账资金目标钱包的ID。amount
:转账金额。created_at
:转账创建的日期时间戳。updated_at
:最后更新日期时间戳。
发布资源
要发布模型和迁移,请运行
php artisan vendor:publish --provider="algeriany\wallet\WalletServiceProvider" --tag=models php artisan vendor:publish --provider="algeriany\wallet\WalletServiceProvider" --tag=migrations
许可证
此包使用MIT许可证。有关详细信息,请参阅LICENSE文件。