A Referral System With Laravel
Via Composer to add the package to your project's dependencies:
$ composer require questocat/laravel-referral
First add service providers into the config/app.php
\Questocat\Referral\ReferralServiceProvider::class,
Publish the migrations
$ php artisan vendor:publish --provider="Questocat\Referral\ReferralServiceProvider" --tag="migrations"
Publish the config
$ php artisan vendor:publish --provider="Questocat\Referral\ReferralServiceProvider" --tag="config"
Add UserReferral Trait to your User model.
use Questocat\Referral\Traits\UserReferral
class User extends Model
{
use UserReferral;
}
Assigning CheckReferral Middleware To Routes.
// Within App\Http\Kernel Class...
protected $routeMiddleware = [
'referral' => \Questocat\Referral\Http\Middleware\CheckReferral::class,
];
Once the middleware has been defined in the HTTP kernel, you may use the middleware method to assign middleware to a route:
Route::get('/', 'HomeController@index')->middleware('referral');
Now you can create the user:
$user = new App\User();
$user->name = 'zhengchaopu';
$user->password = bcrypt('password');
$user->email = 'zhengchaopu@gmail.com';
$user->save();
// Or
$data = [
'name' => 'zhengchaopu',
'password' => bcrypt('password'),
'email' => 'zhengchaopu@gmail.com',
];
App\User::create($data);
Get the referral link:
$user = App\User::findOrFail(1);
{{ $user->getReferralLink() }}
Licensed under the MIT license.