wimil/followers is a Laravel package for follow and followers for laravel eloquent.
It currently has 1 GitHub stars and 909 downloads on Packagist (latest version 1.0).
Install it with composer require wimil/followers.
Discover more Laravel packages by wimil
or browse all Laravel packages to compare alternatives.
Last updated
follower system for laravel, one model can follow another model.
You can install the package using composer
$ composer require wimil/followers
Then add the service provider to config/app.php
Wimil\Followers\Provider::class
Publish the migrations file:
$ php artisan vendor:publish --provider="Wimil\Followers\Provider" --tag="migrations"
As optional if you want to modify the default configuration, you can publish the configuration file:
$ php artisan vendor:publish --provider="Wimil\Followers\Provider" --tag="config"
And create tables:
$ php artisan migrate
Finally, add the characteristic function in the model that can be followed and can also be followed:
use Wimil\Followers\Traits\Followable;
class User extends Model
{
use Followable;
}
Example
$bob = User::find(1);
$alin = User::find(2);
$bob->follow($alin);
$alin->follow($bob);
$bob->follow([2, 'App\User']);
$alin->follow([1, 'App\User']);
$bob->toggleFollow($alin);
$alis->toggleFollow($bob);
$bob->toggleFollow([2, 'App\User']);
$alin->toggleFollow([1, 'App\User']);
use Wimil\Follow\Traits\CanFollow;
class User extends Model
{
use CanFollow;
}
Example All available APIs are listed below.
$user = User::find(1);
$page = Page::find(1);
$user->follow($page);
$user->toggleFollow($page);
$user->unfollow($page);
$user->isFollowing($page);
use Wimil\Follow\Traits\CanBeFollowed;
class Page extends Model
{
use CanBeFollowed;
}
Example All available APIs are listed below.
$user = User::find(1);
$page = Page::find(1);
$page->addFollower($user);
$page->deleteFollower($user);
$page->toggleFollower($user);
$page->isFollowedBy($user);
If you want to have your own Follower Model create a new one and extend my Follower model.
use Wimil\Followers\Model\Follower as BaseFollower;
class Follower extends BaseFollower
{
// ...
}
and dont forget to update the model name in the config/followers.php file.
you can also use the facade alias, you must include the facade alias in your config/app.php
'Follow' => Wimil\Followers\Facades\Follow::class;
Usage
$bob = User::find(1);
$alin = User::find(2);
Follow::attach($bob, $alin);
Follow::attach($alin, $bob);
Follow::attach([1, 'App\User'], [2, 'App\User']);
Follow::attach([2, 'App\User'], [1, 'App\User']);
Follow::detach($bob, $alin);
Follow::toggle($bob, $alin);
Follow::exists($bob, $alin);
MIT
created by wimil