famdirksen / laravel-referral
一个用于轻松注册引荐的 Laravel 包。
1.0
2022-09-06 14:27 UTC
Requires
- php: ^7.2|^7.3|^7.4|^8.0
- illuminate/database: ^5.8|^6.0|^7.0|^8.0|^9.0
- illuminate/http: ^5.8|^6.0|^7.0|^8.0|^9.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.17
- phpunit/phpunit: ^9.5
- psalm/plugin-laravel: ^1.4
- vimeo/psalm: ^4.3
README
使用此包,您可以轻松地为您的用户/模型注册引荐。
安装
您可以通过 composer 安装此包。
composer require famdirksen/laravel-referral
用法
此示例展示了具有多个 referralAccounts
的用户 (App\Models\User
)。基于系统中创建的 Order
订单,它将为引荐账户注册引荐。
在 App\Models\User
中添加 CanReferralContract
& CanReferralTrait
;
<?php namespace App\Models; use Famdirksen\LaravelReferral\Contracts\CanReferralContract; use Famdirksen\LaravelReferral\Traits\CanReferralTrait; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable implements CanReferralContract { use CanReferralTrait; //... }
在 App\Models\Order
中添加 HandleReferralContract
& HandleReferralTrait
;
<?php namespace App; use Famdirksen\LaravelReferral\Contracts\HandleReferralContract; use Famdirksen\LaravelReferral\Traits\HandleReferralTrait; use Illuminate\Database\Eloquent\Model; class Order extends Model implements HandleReferralContract { use HandleReferralTrait; //... }
最后,您需要注册跟踪引荐的中间件。
将 CheckReferralMiddleware
添加到 App\Http\Kernel
<?php namespace App\Http; use Illuminate\Foundation\Http\Kernel as HttpKernel; class Kernel extends HttpKernel { protected $middlewareGroups = [ 'web' => [ //... \Famdirksen\LaravelReferral\Http\Middleware\CheckReferralMiddleware::class, //... ], ]; //... }
用法
- 为用户创建引荐账户
$user = auth()->user(); // create a referral account for the user // `name` parameter is used for many type of referral systems $user->makeReferralAccount('default');
- 获取所有引荐账户、引荐链接和引荐账户的引荐
$user = auth()->user(); // get all referralAccounts for the current authenticated user $referralAccounts = $user->referralAccounts; // get the default referral account $defaultReferralAccount = $referralAccounts->first(); // get the referral link for the default referral account $referralLink = $defaultReferralAccount->getReferralLink(); // get all referrals for a referral account $referrals = $defaultReferralAccount->referrals->get();
- 当
Order
模型触发created
事件时,它将根据referral
饼干为引荐账户注册引荐。
配置
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近的变化。
贡献
请参阅 CONTRIBUTING 了解详情。
安全漏洞
请审查 我们的安全策略 了解如何报告安全漏洞。
鸣谢
许可
MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。