outhebox / laravel-pointable
Point system for Laravel
v1.0.7
2020-10-08 23:07 UTC
Requires
- php: >=7.2
- laravel/framework: ^5.0|^6.0|^7.0|^8.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Laravel Pointable
Point Transaction system for Laravel Framework
Original Package from Trexology
Installation
First, pull in the package through Composer.
composer require outhebox/laravel-pointablee
And then include the service provider within app/config/app.php.
'providers' => [ Outhebox\Pointable\PointableServiceProvider::class ];
At last you need to publish and run the migration.
php artisan vendor:publish --provider="Outhebox\Pointable\PointableServiceProvider" && php artisan migrate
Setup a Model
<?php namespace App; use Outhebox\Pointable\Contracts\Pointable; use Outhebox\Pointable\Traits\Pointable as PointableTrait; use Illuminate\Database\Eloquent\Model; class User extends Model implements Pointable { use PointableTrait; }
Add Points
$user = User::first(); $amount = 10; // (Double) Can be a negative value $message = "The reason for this transaction"; //Optional (if you modify the point_transaction table) $data = [ 'ref_id' => 'someReferId', ]; $transaction = $user->addPoints($amount,$message,$data); dd($transaction);
Get Current Points
$user = User::first(); $points = $user->currentPoints(); dd($points);
Get Transactions
$user = User::first(); $user->transactions; //OR //$user['transactions'] = $user->transactions(2)->get(); //Get last 2 transactions dd($user);
Count Transactions
$user = User::first(); $user['transactions_total'] = $user->countTransactions(); dd($user);