hirschberg/credits

Laravel 包,用于轻松添加用户积分支持(基于 iamjaime/credits 的分支)

安装: 1

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 6

类型:laravel

dev-dev-master-felix 2023-09-13 12:44 UTC

This package is not auto-updated.

Last update: 2024-09-25 17:23:19 UTC


README

Laravel 用户积分包

本包的目的是让您能够轻松地将积分系统应用到现有的 Laravel 应用中。

例如:如果您想创建一个用户必须购买积分才能在该网站上购买商品的网站,这个包将使您轻松实现这一点。

要开始使用,请按照以下步骤操作

使用 Composer 安装包

composer require iamjaime/credits --dev

然后前往您的 config/app 目录,并将以下内容添加到 providers 数组中

Iamjaime\Credits\UserCreditServiceProvider::class

现在您必须运行迁移...

php artisan migrate

现在前往您的用户模型,并在顶部添加以下行

use Iamjaime\Credits\Traits\UsesCredits;

然后在您的类内部添加以下行

use UsesCredits;

您的模型现在应该看起来像这样

<?php
  
  namespace App;
  
  use Illuminate\Notifications\Notifiable;
  use Illuminate\Foundation\Auth\User as Authenticatable;
  use Iamjaime\Credits\Traits\UsesCredits;
  
  class User extends Authenticatable
  {
      use Notifiable, UsesCredits;
  
      /**
       * The attributes that are mass assignable.
       *
       * @var array
       */
      protected $fillable = [
          'name', 'email', 'password',
      ];
  
      /**
       * The attributes that should be hidden for arrays.
       *
       * @var array
       */
      protected $hidden = [
          'password', 'remember_token',
      ];
  }
如果您使用的是 Laravel Spark,需要进行以下操作

前往 App/Providers/EventServiceProvider.php 并将以下内容添加到 protected $listen 数组中

'Laravel\Spark\Events\Auth\UserRegistered' => [
            'Iamjaime\Credits\Listeners\UserRegistered'
        ],

如果您使用 Laravel Spark 的团队计费并且想按团队使用积分,请执行以下操作

前往 App/Providers/EventServiceProvider.php 并将以下内容添加到 protected $listen 数组中

'Laravel\Spark\Events\Teams\TeamCreated' => [
            'Laravel\Spark\Listeners\Teams\UpdateOwnerSubscriptionQuantity',
            'Iamjaime\Credits\Listeners\TeamCreated'
        ],

前往您的团队模型,并在顶部添加以下行

use Iamjaime\Credits\Traits\UsesTeamCredits;

然后在您的类内部添加以下行

use UsesTeamCredits;

您的模型现在应该看起来像这样

<?php

namespace App;

use Laravel\Spark\Team as SparkTeam;
use Iamjaime\Credits\Traits\UsesTeamCredits;

class Team extends SparkTeam
{
    use UsesTeamCredits;
    
    //
}

现在您已经设置完毕,可以开始使用了!

以下是一些示例

以下代码片段将返回包含用户积分的用户对象。

$user = App\User::where('id', '=', 1)->with('credit')->first();

//These are the user's credits....
$credits = $user->credit->amount;

以下代码片段将返回包含团队积分的团队对象。

$team = App\Team::where('id', '=', 1)->with('credit')->first();

//These are the team's credits....
$credits = $team->credit->amount;

以下是如何更新用户积分的示例。

$user = App\User::where('id', '=', 1)->first();

$user->updateCredits(500);

以下是如何更新团队积分的示例。

$team = App\Team::where('id', '=', 1)->first();

$team->updateCredits(500);