Laravel 5 Friendships
This package gives users the ability to manage their friendships.
Models can:
- Send Friend Requests
- Accept Friend Requests
- Deny Friend Requests
- Delete Friend
Installation
First, install the package through Composer.
composer require merodiro/friendships
Then include the service provider inside config/app.php
.
'providers' => [
...
Merodiro\Friendships\FriendshipsServiceProvider::class,
...
];
Finally, migrate the database
php artisan migrate
Setup a Model
use Merodiro\Friendships\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->addFriend($recipient);
Accept a Friend Request
$user->acceptFriend($sender);
Deny a Friend Request
$user->deleteFriend($sender);
Remove Friend
$user->deleteFriend($friend);
Mutual Friends
$user->mutualFriends($anotherUser);
check the current relationship between two users
$user->checkFriendship($anotherUser);
it returns
same_user
=> if the$user
is checking his own accountfriends
=> if they are friendswaiting
=> if$user
sent a request waiting for approval from$anotherUser
pending
=> if$anotherUser
user sent a request waiting for approval from$user
not_friends
=> if they are not friends
Check if two users are friends
$user->isFriendsWith($anotherUser);
it returns true
if they are friends and false
if they aren't
Friends
To get a collection of users use the following methods:
Get Friends
$user->friends();
$user
has received friend requests from
Get a list of users that $user->friendRequestsReceived();
$user
has sent friend requests to
Get a list of users that $user->friendRequestsSent();
Events
This is the list of the events fired by default for each action
Event name | Fired |
---|---|
friendrequest.sent | When a friend request is sent |
friendrequest.accepted | When a friend request is accepted |
friendship.deleted | When a friend request is denied |
friendship.deleted | When a friendship is deleted |
for more about how to use the events Check this example
Testing
$ composer test
Contributing
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
Security
If you discover any security-related issues, please email [email protected] instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.