aira-virtual/promocodes

Laravel 5 的促销码生成器

1.2.1 2017-07-26 12:25 UTC

README

使用 0.5.1 版本适用于 Laravel 5.1

Latest Stable Version Total Downloads License StyleCI Scrutinizer Code Quality Build Status

PR0M0C0D35
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) - 匹配给定代码的记录

为当前用户创建促销码。这与 Promocodescreate 方法的工作方式完全相同

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'.
});

如何使用附加数据?

  1. 创建过程
Promocodes::create("Test Code", 1, 25, ['foo' => 'bar', 'baz' => 'qux']);

User::createCode("Test Code", 1, 25, ['foo' => 'bar', 'baz' => 'qux']);
  1. 获取数据回
Promocodes::apply('ABC-DEF', function($promocode) {
    echo $pomocode->data['foo'];
});

User::applyCode('ABC-DEF', function($promocode) {
    echo $pomocode->data['foo'];
});

许可证

laravel-promocodes 在 MIT 许可证 下授权。

待办事项

  • [x] 创建测试以检查功能