centrex/laravel-wallet
最新稳定版本:v1.1.0
Composer 安装命令:
composer require centrex/laravel-wallet
包简介
Add wallet functionality in laravel application
README 文档
README
Polymorphic digital wallet for any Eloquent model. Supports multiple wallet types per user, balance increments/decrements, and an immutable ledger of all transactions.
Installation
composer require centrex/laravel-wallet
php artisan vendor:publish --tag="laravel-wallet-migrations"
php artisan migrate
Usage
1. Add the trait to your model
use Centrex\Wallet\Traits\HasWallet; class User extends Authenticatable { use HasWallet; }
A default wallet is created automatically when the model is created.
2. Access wallets
// All wallets for this user $user->wallets; // Specific wallet by type ID $wallet = $user->wallet(WalletType::DEFAULT->value); echo $wallet->balance;
3. Credit and debit
// Credit by amount $wallet->incrementBalance(500.00); // Debit by amount $wallet->decrementBalance(200.00); // Credit via a WalletTransaction model (links transaction to ledger entry) $wallet->incrementBalance($transaction); $wallet->decrementBalance($transaction);
4. Ledger
Every balance change is recorded in wallet_ledgers with the transaction reference and running balance:
$wallet->walletLedgers; // → collection of WalletLedger with: amount, running_raw_balance, transaction_id, transaction_type
Wallet types
use Centrex\Wallet\Enums\WalletType; WalletType::DEFAULT // value: 1 WalletType::TEMPORAY // value: 2
Cleanup on delete
When the parent model is deleted, all its wallets are automatically deleted via the deleting boot hook.
Testing
composer test # full suite composer test:unit # pest only composer test:types # phpstan composer lint # pint
Changelog
Please see CHANGELOG for more information on what has changed recently.
Credits
License
The MIT License (MIT). Please see License File for more information.
统计信息
- 总下载量: 2.46k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-12-30