ivanaquino/laravel-credithub

这是我创建的laravel-credithub包

0.1.0 2024-08-24 04:07 UTC

This package is auto-updated.

Last update: 2024-09-24 04:20:13 UTC


README

开发中

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

这里应该放置您的描述。限制在一到两段话。可以考虑添加一个小例子。

支持我们

我们投入大量资源来创建最佳的开放源代码包。您可以通过购买我们的付费产品之一来支持我们。

我们非常感激您从家乡寄给我们明信片,并注明您使用的是哪个包。您可以在我们的联系方式页面上找到我们的地址。我们将发布所有收到的明信片在我们的虚拟明信片墙上

安装

您可以通过composer安装此包

composer require ivanaquino/laravel-credithub

您可以使用以下命令发布和运行迁移

php artisan vendor:publish --tag="credithub-migrations"
php artisan migrate

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="credithub-config"

这是已发布配置文件的内容

return [
    'type_field' => 'string',
];

使用方法

您必须在模型中实现HasCredits契约并使用CreditTransactional特质。

// ...
use IvanAquino\LaravelCredithub\Contracts\HasCredits;
use IvanAquino\LaravelCredithub\Traits\CreditTransactional;

class User extends Model implements HasCredits
{
    use CreditTransactional;
}
// ...

现在您可以使用以下方法

$user = User::find(1);
# Add credits
$user->addCredits(100);
$user->addCredits(100, 'Bonus');
$user->addCredits(100, 'Bonus', ['my_custom_field' => 'my_custom_value']);
# Subtract credits
$user->subtractCredits(100);
$user->subtractCredits(100, 'Withdraw');
$user->subtractCredits(100, 'Withdraw', ['my_custom_field' => 'my_custom_value']);
# Transfer credits
$user->transferCreditsTo(100, $anotherUser);
$user->transferCreditsTo(100, $anotherUser, 'Transfer');
$user->transferCreditsTo(100, $anotherUser, 'Transfer', ['my_custom_field' => 'my_custom_value']);

# Get credits
$user->credit_balance; // integer
$user->has_credits; // true or false

您可以将CreditTransaction模型的类型字段转换为所需的任何类型,例如

return [
    'type_field' => \App\Enums\CreditTransactionType::class,
];
use \App\Enums\CreditTransactionType;

$user = User::find(1);
# Add credits
$user->addCredits(100, CreditTransactionType::BONUS);

测试

composer test

变更日志

请参阅CHANGELOG以获取有关最近更改的更多信息。

贡献

请参阅CONTRIBUTING以获取详细信息。

安全漏洞

请查阅我们的安全策略了解如何报告安全漏洞。

贡献者

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。