rezkonline / laravel-discounts
将折扣应用到Laravel的Eloquent模型中
Requires
- php: ^7.4|^8.0
- illuminate/database: ~5.8.0|^6.0|^7.0|^8.0
- illuminate/support: ~5.8.0|^6.0|^7.0|^8.0
Requires (Dev)
- orchestra/testbench: ~3.8.0|^4.0|^5.0|^6.0
- phpunit/phpunit: ^7.0|^8.0|^9.0
This package is not auto-updated.
Last update: 2024-09-16 08:23:59 UTC
README
此软件包受Marcel Pociot的Laravel Vouchers(https://github.com/beyondcode/laravel-vouchers)启发。
应用折扣到Laravel的Eloquent模型,可以在需要将折扣与特定金额关联到Eloquent模型时使用。
任何模型
<?php use Rezkonline\Discounts\Traits\Discountable; class Item extends Model { use Discountable; } ... $item = Item::find(1); $item->createDiscount(100);
要求
Laravel Discounts软件包需要PHP >= 7.2和Laravel >= 5.8。
安装
您可以通过composer安装此软件包
composer require zaratedev/laravel-discounts
该软件包将自动注册自己。
迁移
您可以发布迁移
php artisan vendor:publish --provider="Rezkonline\Discounts\DiscountsServiceProvider" --tag="migrations"
执行以下命令
php artisan migrate
使用方法
此软件包的基本概念是创建与特定模型关联的折扣。例如,您有一个订阅应用程序,前三个月必须对订阅价格应用折扣。
将Rezkonline\Discounts\Traits\Discountable
特质添加到您想要使用折扣的Eloquent模型中。
Rezkonline\Discounts\Traits\Discountable
特质可以在数据库中兑换折扣。
创建折扣
使用外观
您可以使用Discounts
外观创建一个或多个折扣
$subscription = Subscription::find(1); $discounts = Discounts::create($subscription, 3, 100);
使用Eloquent模型
$subscription = Subscription::find(1); // Returns an array of Discounts $discounts = $subscription->createDiscounts(3, 100); // Return a Discount model $discount = $subscription->createDiscount(100);
具有到期日期的折扣
您可以创建具有到期日期的折扣。
$subscription = Subscription::find(1); $subscription->createDiscounts(3, 100, today()->addMonths(4))
兑换折扣
当折扣被使用时,您可以兑换它。
$discount->redeem();
兑换折扣后,此软件包初始化了两个可观察事件redeeming
、redeemed
,您可以根据应用程序的业务逻辑实现事件和监听器。
折扣已过期
如果尝试兑换已过期的折扣,该软件包将抛出以下异常:Rezkonline\Discounts\Exceptions\DiscountExpired
。
贡献
欢迎提交拉取请求。对于重大更改,请首先创建一个问题以讨论您想要更改的内容。
请确保适当更新测试。
联系方式
如果您在此软件包中发现问题,请发送电子邮件至zaratedev@gmail.com