Laravel Friendable
Via Composer
$ composer require draperstudio/laravel-friendable
And then include the service provider within app/config/app.php.
'providers' => [
DraperStudio\Friendable\ServiceProvider::class
];
At last you need to publish and run the migration.
php artisan vendor:publish --provider="DraperStudio\Friendable\ServiceProvider" && php artisan migrate
Usage
Setup a Model
<?php
/*
* This file is part of Laravel Friendable.
*
* (c) DraperStudio <hello@draperstudio.tech>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace App;
use DraperStudio\Friendable\Contracts\Friendable;
use DraperStudio\Friendable\Traits\Friendable as FriendableTrait;
use Illuminate\Database\Eloquent\Model;
class User extends Model implements Friendable
{
use FriendableTrait;
}
Examples
Send a Friend-Request to a Model
$user->befriend($userToBeFriendsWith);
Unfriend a Model
$user->unfriend($userToBeFriendsWith);
Deny a Friend-Request from a Model
$user->denyFriendRequest($userToBeFriendsWith);
Accept a Friend-Request from a Model
$user->acceptFriendRequest($userToBeFriendsWith);
Block a Model
$user->blockFriendRequest($userToBeFriendsWith);
Unblock a Model
$user->unblockFriendRequest($userToBeFriendsWith);
Check if the Model has blocked another Model
$user->hasBlocked($userToBeFriendsWith);
Check if one Model is blocked by another Model
$user->isBlockedBy($userToBeFriendsWith);
Check if a Friendship exists between two models
$user->isFriendsWith($userToBeFriendsWith);
Get a single friendship
$user->getFriendship($userToBeFriendsWith);
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();
Change log
Please see CHANGELOG for more information what has changed recently.
Testing
$ composer test
Download