aira-virtual / promocodes
Laravel 5 的促销码生成器
1.2.1
2017-07-26 12:25 UTC
Requires
- php: >=5.4.0
- laravel/framework: ~5.0
README
使用 0.5.1 版本适用于 Laravel 5.1
PR0M0C0D35 | |
---|---|
![]() | 为 Laravel 5.* 开发的促销码生成器。致力于制作该类别的最佳包。欢迎加入我们的行列,给我一些建议 :tada: 并提交 pull request。 |
目录
有什么新功能?
安装
通过 Composer 安装此包
$ composer require aira-virtual/promocodes
打开 config/app.php
并按照以下步骤操作
找到 providers
数组并添加我们的服务提供者。
'providers' => [
// ...
Aira\Promocodes\PromocodesServiceProvider::class
],
找到 aliases
数组并添加我们的外观。
'aliases' => [
// ...
'Promocodes' => Aira\Promocodes\Facades\Promocodes::class
],
配置
使用 Artisan 命令发布配置和迁移文件
$ php artisan vendor:publish
要创建数据库中促销码的表,请运行
$ php artisan migrate
配置参数有很好的文档记录。这里不需要描述每个参数。
检查
config/promocodes.php
并在需要时阅读那里的注释。
使用
生成您想要的任何数量的代码,并输出它们而不保存。您将获得代码数组作为返回值
Promocodes::output($amount = 1)
创建您想要的任何数量的代码,每个代码都有相同的奖励。它们将被保存到数据库中,并且您将获得这些代码的集合作为返回值
Promocodes::create($label = "Test Code", $amount = 1, $reward = null, array $data = [])
检查给定的代码是否存在并且未被使用
Promocodes::check($code)
应用,给定的代码已被使用。更新数据库记录。您将获得促销码记录或 true/false
Promocodes::apply($code)
促销码可以与用户相关联
如果您想使用用户关系,请打开您的模型并将其设置为 Rewardable
,如下例所示
namespace App;
use Illuminate\Notifications\Notifiable;
use Aira\Promocodes\Traits\Rewardable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable, Rewardable;
// ...
}
获取当前用户的全部促销码
User::promocodes()
为促销码提供了查询作用域:
fresh()
,byCode($code)
User::promocodes()->fresh()
- 用户所有未使用的代码User::promocodes()->byCode($code)
- 匹配给定代码的记录
为当前用户创建促销码。这与 Promocodes
的 create
方法的工作方式完全相同
User::createCode("Test Code", $amount = 1, $reward = null, array $data = [])
应用,当前用户使用了给定的代码。第二个参数是可选的,如果为 null,则返回促销码记录或布尔值,或者您可以传递一个回调函数,该函数将奖励或布尔值作为参数
User::applyCode($code, $callback = null)
示例
$user = Auth::user();
$user->applyCode('ABCD-DCBA', function ($promocode) use ($user) {
return 'Congratulations, ' . $user->name . '! We have added ' . $promocode->reward . ' points on your account'.
});
如何使用附加数据?
- 创建过程
Promocodes::create("Test Code", 1, 25, ['foo' => 'bar', 'baz' => 'qux']);
或
User::createCode("Test Code", 1, 25, ['foo' => 'bar', 'baz' => 'qux']);
- 获取数据回
Promocodes::apply('ABC-DEF', function($promocode) {
echo $pomocode->data['foo'];
});
或
User::applyCode('ABC-DEF', function($promocode) {
echo $pomocode->data['foo'];
});
许可证
laravel-promocodes 在 MIT 许可证 下授权。
待办事项
- [x] 创建测试以检查功能