掌握laravel-friendships:3步实现用户间的好友关系管理
掌握laravel-friendships3步实现用户间的好友关系管理【免费下载链接】laravel-friendshipsThis package gives Eloquent models the ability to manage their friendships.项目地址: https://gitcode.com/gh_mirrors/la/laravel-friendshipslaravel-friendships 是一款专为 Laravel 设计的好友关系管理扩展包它让任意 Eloquent 模型都能像 Facebook 那样发起好友申请、接受或拒绝请求、拉黑用户、按分组管理好友关系。无论你正在开发社交产品、社区平台还是内部协作工具掌握 laravel-friendships 都能在 3 个步骤内搭建出完整的好友系统无需手写一张关系表的查询逻辑。第 1 步一分钟完成安装与环境搭建laravel-friendships 通过 Composer 一行命令即可引入安装过程极其简单composer require hootlex/laravel-friendships随后发布配置文件和数据表迁移文件并执行迁移php artisan vendor:publish --providerHootlex\Friendships\FriendshipsServiceProvider php artisan migrate✅ 安装完成后包会自动注册 src/FriendshipsServiceProvider.php 服务提供者创建两张核心数据表数据表作用迁移文件friendships记录双方关系及状态待确认/已接受/已拒绝/已拉黑src/database/migrations/create_friendships_table.phpuser_friendship_groups记录好友所属分组如密友、家人src/database/migrations/create_friendships_groups_table.php 表名可在 src/config/friendships.php 中按需修改。第 2 步给模型启用好友能力仅 1 行代码laravel-friendships 的核心是一个 Trait。只需在你的User模型或任何 Eloquent 模型中引入Friendable模型就立即长出了管理好友关系的全部方法use Hootlex\Friendships\Traits\Friendable; class User extends Model { use Friendable; }这个特性来自 src/Traits/Friendable.php共封装了 30 余个开箱即用的方法。所有关系状态由 src/Status.php 统一管理对应 4 种状态状态常量含义0PENDING好友申请待确认1ACCEPTED已成为好友2DENIED申请被拒绝3BLOCKED已被拉黑第 3 步用几个方法驾驭全部好友场景发起、接受与拒绝好友申请这是好友系统最高频的三个动作一行代码即可完成$user-befriend($recipient); // 发送好友申请 $user-acceptFriendRequest($sender); // 接受申请 $user-denyFriendRequest($sender); // 拒绝申请 $user-unfriend($friend); // 解除好友关系拉黑与解除拉黑$user-blockFriend($friend); // 拉黑 $user-unblockFriend($friend); // 解除拉黑 $user-hasBlocked($friend); // 判断是否已拉黑对方查询关系与好友列表需要展示共同好友好友的好友时这些方法能省去大量关联查询$user-isFriendWith($friend); // 是否为好友 $user-getFriendRequests(); // 收到的待处理申请 $user-getFriends($perPage 20); // 好友列表可分页 $user-getMutualFriends($otherUser); // 与某人的共同好友 $user-getFriendsOfFriends(); // 好友的好友 $user-getFriendsCount(); // 好友总数好友分组管理在 src/config/friendships.php 中定义分组包内置了 3 个默认分组即可给好友打上标签groups [ acquaintances 0, // 熟人 close_friends 1, // 密友 family 2, // 家人 ]$user-groupFriend($friend, family); // 把好友加入家人分组 $user-ungroupFriend($friend); // 从所有分组中移除 更多用法可参考项目自带的测试用例tests/FriendshipsTest.php、tests/FriendshipsGroupsTest.php。监听好友事件做业务扩展每个关键动作都会触发事件方便你做通知推送、数据统计等二次开发事件触发时机friendships.sent好友申请发出friendships.accepted申请被接受friendships.denied申请被拒绝friendships.blocked/friendships.unblocked拉黑 / 解除拉黑friendships.cancelled好友关系解除常见问题Q只支持 User 模型吗A不是。任何 Eloquent 模型引入Friendable后都能参与好友关系数据表使用多态字段天然支持跨模型关联。Q会发重复的好友申请吗A不会。befriend()内部会先校验关系状态已存在有效关系或已拉黑时不会再发。Q如何获取好友关系模型的详细信息A调用$user-getFriendship($friend)即可拿到关系模型定义于 src/Models/Friendship.php其中包含发送方、接收方与状态。写在最后回顾一下完整的 3 步流程安装扩展 → 启用 Trait → 调用方法。laravel-friendships 用不到 30 行业务代码就覆盖了好友申请、拉黑、分组、共同好友查询等社交场景的核心能力是 Laravel 开发者构建好友关系管理功能的最短路径。【免费下载链接】laravel-friendshipsThis package gives Eloquent models the ability to manage their friendships.项目地址: https://gitcode.com/gh_mirrors/la/laravel-friendships创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考