obb12/laravel-friendships
Laravel 5 Friendships

This package gives Eloqent models the ability to manage their friendships. You can easily design a Facebook like Friend System.
##Models can:
- Send Friend Requests
- Accept Friend Requests
- Deny Friend Requests
- Block Another Model
Installation
First, install the package through Composer.
composer require hootlex/laravel-friendships
Then include the service provider inside config/app.php.
'providers' => [
...
Hootlex\Friendships\FriendshipsServiceProvider::class,
...
];
Lastly you need to publish the migration and migrate the database
php artisan vendor:publish --provider="Hootlex\Friendships\FriendshipsServiceProvider" && php artisan migrate
Setup a Model
use Hootlex\Friendships\Traits\Friendable;
class User extends Model
{
use Friendable;
...
}
How to use
Check the Test file to see the package in action
Send a Friend Request
$user->befriend($recipient);
Accept a Friend Request
$user->acceptFriendRequest($recipient);
Deny a Friend Request
$user->denyFriendRequest($recipient);
Remove Friend
$user->unfriend($recipient);
Block a Model
$user->blockFriend($recipient);
Unblock a Model
$user->unblockFriend($recipient);
Check if Model is Friend with another Model
$user->isFriendWith($recipient);
Check if Model has a pending friend request from another Model
$user->hasFriendRequestFrom($recipient);
Check if Model has blocked another Model
$user->hasBlocked($recipient);
Check if Model is blocked by another Model
$user->isBlockedBy($recipient);
Get a single friendship
$user->getFriendship($recipient);
Get a list of all Friendships
$user->getAllFriendships();
Get a list of pending Friendships
$user->getPendingFriendships();
Get a list of accepted Friendships
$user->getAcceptedFriendships();
Get a list of denied Friendships
$user->getDeniedFriendships();
Get a list of blocked Friendships
$user->getBlockedFriendships();
Get a list of pending Friend Requests
$user->getFriendRequests();
Get the number of Friends
$user->getFriendsCount();
To get a collection of friend models (ex. User) use the following methods:
Get Friends
$user->getFriends();
Get Friends Paginated
$user->getFriends($perPage = 20);
Get Friends of Friends
$user->getFriendsOfFriends($perPage = 20);
Related Packages
This package gives Eloquent models the ability to manage their friendships.
This package gives Eloquent models the ability to manage their friendships. Fork...
This package gives Eloquent models the ability to manage their friendships. Fork...
This package gives Eloquent models the ability to manage their followers.