Skip to content

sebastiankennedy/laravel-follow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laravel Follow

Build Status Latest Stable Version Latest Unstable Version Scrutinizer Code Quality Code Coverage Code Intelligence Total Downloads License

User follow feature for laravel application.

Version Matrix

Version Laravel PHP Version
1.x 6.x >= 7.3

Installing

composer require sebastian-kennedy/laravel-follow -vvv

Configuration

php artisan vendor:publish --provider="SebastianKennedy\\LaravelFollow\\FollowServiceProvider" --tag=config

Migrations

php artisan vendor:publish --provider="SebastianKennedy\\LaravelFollow\\FollowServiceProvider" --tag=migrations

Usage

Preparing the user model

To allow an user to be followed or to follow other users, the user models have to make usage of a trait.

<?php

/*
 * This file is part of the sebastian-kennedy/laravel-follow.
 *
 * (c) SebastianKennedy <[email protected]>
 *
 * This source file is subject to the MIT license that is bundled.
 */

namespace SebastianKennedy\LaravelFollow\Tests;

use Illuminate\Database\Eloquent\Model;
use SebastianKennedy\LaravelFollow\Behaviors\CanBeFollowBehavior;
use SebastianKennedy\LaravelFollow\Behaviors\CanFollowBehavior;

/**
 * Class User.
 */
class User extends Model
{
    use CanFollowBehavior;
    use CanBeFollowBehavior;
}

CanFollowBehavior

Get list of followings

$user = User::find(1);
$followings = $user->followings;

Get list of follow relationships

$user = User::find(1);
$follows = $user->follows;

Determine if a user has followed the other user

$user1 = User::find(1);
$user2 = User::find(2);
$user1->hasFollowed($user2);

Follow a User

$user1 = User::find(1);
$user2 = User::find(2);
$user1->follow($user2);

Follow many users

$user1 = User::find(1);
$users = User::whereIn('id', [2, 3, 4])->get();
$user1->followMany($users);

Special follow a user

$user1 = User::find(1);
$user2 = User::find(2);
$user1->specialFollow($user2);

Unfollow a user

$user1 = User::find(1);
$user2 = User::find(2);
$user1->unFollow($user2);

Unfollow many users

$user1 = User::find(1);
$users = User::whereIn('id', [2, 3, 4])->get();
$user1->unFollowMany($users);

Cancel special follow a user

$user1 = User::find(1);
$user2 = User::find(2);
$user1->cancelSpecialFollow($user2);

Toggle follow a user

$user1 = User::find(1);
$user2 = User::find(2);
$user1->toggleFollow($user2);

CanBeFollowBehavior

Get list of followers

$user1 = User::find(1);
$user1->followers;

Get list of follow relationships

$user1 = User::find(1);
$user1->follwable;

Determine if a user is followed By the other user

$user1 = User::find(1);
$user2 = User::find(2);
$user1->isFollowedBy($user2);

Accept a user follow request

$user1 = User::find(1);
$user2 = User::find(2);
$user2->follow($user1);
$user1->acceptFollow($user2);

Reject a user follow request

$user1 = User::find(1);
$user2 = User::find(2);
$user1->follow($user2);
$user2->rejectFollow($user1);

Remove a follower

$user1 = User::find(1);
$user2 = User::find(2);
$user1->removeFollower($user2);

Remove many followers

$user1 = User::find(1);
$users = User::whereIn('id', [2, 3, 4])->get();
$user1->removeManyFollowers($users);

License

MIT

About

👥 User follow feature for laravel application.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Languages