questocat/laravel-rally

A followers system for laravel 5

Downloads

104

Stars

5

Version

v1.0.0

laravel-rally

A followers system for laravel 5, Trait for Laravel Eloquent models to allow easy implementation of a "follow" or "like" or "favorite" or "remember" or "subscribe" feature.

StyleCI Scrutinizer Code Quality Build Status Packagist

Installation

Via Composer to add the package to your project's dependencies:

$ composer require questocat/laravel-rally

First add service providers into the config/app.php

\Questocat\Rally\RallyServiceProvider::class,

Publish the migrations

$ php artisan vendor:publish --provider="Questocat\Rally\RallyServiceProvider" --tag="migrations"

Publish the config

$ php artisan vendor:publish --provider="Questocat\Rally\RallyServiceProvider" --tag="config"

Setup the model

Add CanFollow Traits to your User model.

use Questocat\Rally\Traits\CanFollow

class User extends Model
{
    use CanFollow;
}

Add CanBeFollowed Trait to your Post model or Video model and more.

use Questocat\Rally\Traits\CanBeFollowed

class Post extends Model
{
    use CanBeFollowed;
}

Add CanFollow and CanBeFollowed feature trait into your User model:

use Questocat\Rally\Traits\Followable

class User extends Model
{
    use Followable;
}

Usage

CanFollow

Follow and Unfollow users

$user->follow(1);  // App\User:class
$user->follow($user1);
$user->follow([1, 3]);
$user->follow(1, Post::class);

$user->unfollow(1);  // App\User:class
$user->unfollow($user1);
$user->unfollow([1, 2]);
$user->unfollow(1, Post::class);

Check if being followed by someone

$user->isFollowing(1);
$user->isFollowing($user2);
$user->isFollowing(2, Post::class);
$user->isFollowing($post, Post::class);

Toggle follow

$user->toggleFollow(1);
$user->toggleFollow($user2);
$user->toggleFollow([2, 4]);
$user->toggleFollow([2, 4], Post::class);

Following

$user->following;
$user->following()->get();    // It's the same thing as this
$user->following()->count();  // Get the total following

CanBeFollowed

Check if following by someone

$user->isFollowedBy(3);
$user->isFollowedBy($user2);

Followers

$user->followers;
$user->followers()->get();    // It's the same thing as this
$user->followers()->count();  // Get the total followers

Followable

Check if it is mutual follow

$user->isMutualFollow(1);
$user->isMutualFollow($user2);

Inspiration

License

Licensed under the MIT license.

questocat

Author

questocat