blok / laravel-friendable
此包为Eloquent模型提供管理友谊的功能,源自hootlex/laravel-friendships。
dev-master
2019-10-14 19:39 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- codeclimate/php-test-reporter: ^0.3.2
- doctrine/dbal: ^2.5
- fzaninotto/faker: ~1.4
- laravel/laravel: 5.*
- mockery/mockery: ^0.9.5
- phpunit/phpunit: 5.*
This package is auto-updated.
Last update: 2024-09-21 20:54:05 UTC
README
此包为Eloquent模型提供管理其友谊的功能。
您可以使用此包轻松设计一个类似Facebook的友谊系统。
此包是从https://github.com/hootlex/laravel-friendships分叉而来,并适应Blok生态系统。
模型可以
- 发送好友请求
- 接受好友请求
- 拒绝好友请求
- 屏蔽另一个模型
- 分组好友
安装
首先,通过Composer安装此包。
composer require blok/laravel-friendable
然后,在config/app.php
中包含服务提供者。
'providers' => [ ... Blok\Friendable\FriendshipsServiceProvider::class, ... ];
发布配置和迁移文件
php artisan vendor:publish --provider="Blok\Friendable\FriendshipsServiceProvider"
在
config\friendships.php
最后,迁移数据库
php artisan migrate
设置模型
use Blok\Friendable\Traits\Friendable; class User extends Model { use Friendable; ... }
如何使用
发送好友请求
$user->befriend($recipient);
接受好友请求
$user->acceptFriendRequest($sender);
拒绝好友请求
$user->denyFriendRequest($sender);
删除好友
$user->unfriend($friend);
屏蔽模型
$user->blockFriend($friend);
解除屏蔽模型
$user->unblockFriend($friend);
检查模型是否是另一个模型的友人
$user->isFriendWith($friend);
检查模型是否从另一个模型收到待处理的好友请求
$user->hasFriendRequestFrom($sender);
检查模型是否已向另一个模型发送好友请求
$user->hasSentFriendRequestTo($recipient);
检查模型是否屏蔽了另一个模型
$user->hasBlocked($friend);
检查模型是否被另一个模型屏蔽
$user->isBlockedBy($friend);
获取单个友谊
$user->getFriendship($friend);
获取所有友谊列表
$user->getAllFriendships();
获取待处理友谊列表
$user->getPendingFriendships();
获取接受友谊列表
$user->getAcceptedFriendships();
获取拒绝友谊列表
$user->getDeniedFriendships();
获取屏蔽友谊列表
$user->getBlockedFriendships();
获取待处理好友请求列表
$user->getFriendRequests();
获取好友数量
$user->getFriendsCount();
获取与另一个用户共有好友的数量
$user->getMutualFriendsCount($otherUser);
好友
要获取好友模型(例如User)的集合,请使用以下方法
获取好友
$user->getFriends();
获取分页好友
$user->getFriends($perPage = 20);
获取好友的好友
$user->getFriendsOfFriends($perPage = 20);
获取特定组中分页的好友集合
$user->getFriends($perPage = 20, $group_name);
获取与另一个用户的共有好友
$user->getMutualFriends($otherUser, $perPage = 20);
好友分组
好友分组定义在config/friendships.php
文件中。此包包含一些默认分组。要修改它们或添加自己的分组,您需要指定一个slug
和一个key
。
// config/friendships.php ... 'groups' => [ 'acquaintances' => 0, 'close_friends' => 1, 'family' => 2 ]
由于您已配置好友分组,您可以使用以下方法分组/取消分组好友。
分组好友
$user->groupFriend($friend, $group_name);
从家庭组中删除好友
$user->ungroupFriend($friend, 'family');
从所有组中删除好友
$user->ungroupFriend($friend);
获取特定组中好友的数量
$user->getFriendsCount($group_name);
要按组过滤friendships
,您可以传递一个组slug。
$user->getAllFriendships($group_name); $user->getAcceptedFriendships($group_name); $user->getPendingFriendships($group_name); ...
事件
以下是每个操作默认触发的事件列表
贡献
查看CONTRIBUTING指南。