百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
L

laravel-acquaintances

> 后端框架
开源

此包为 Eloquent 模型提供了管理友谊(与群组)、关注以及点赞、收藏等功能的能力。

850 stars0 点赞2 次浏览
访问官网GitHub

工具介绍

此包为 Eloquent 模型提供了管理友谊(与群组)、关注以及点赞、收藏等功能的能力。

Laravel Acquaintances

Clean, modular social features for Eloquent models: Friendships, Verifications, Interactions (Follow/Like/Favorite/Report/Subscribe/Vote/View), and multi-type Ratings.

  • PHP >= 8.1
  • Illuminate components ^9.0 | ^10.0 | ^11.0 | ^12.0 | ^13.0 (Laravel 9–13)
  • Laravel News: https://laravel-news.com/manage-friendships-likes-and-more-with-the-acquaintances-laravel-package

What's New in v4

  • UUID / ULID morph support — configurable per table via morphs, uuidMorphs, or ulidMorphs.
  • Caching layer — in-memory request cache + optional persistent cache for interaction checks with automatic invalidation.
  • withAcquaintanceCounts() macro — eager-load interaction counts in a single query.
  • HasAcquaintanceCounters trait — auto-increment/decrement counter columns on your model's table.
  • AcquaintancesCleanupJob — queued mass deletion of acquaintance data for deleted models.
  • Database indexes — composite and unique indexes on all tables for faster lookups.
  • Morph map registration — automatic morph map for all package models.
  • Strict return types on all traits and models.
  • DB transactions for blockFriend() and blockVerification().
  • Interactions-only mode — disable friendships and/or verifications via features config to skip their migrations entirely. Granular per-feature publish tags available.

See CHANGELOG.md for the full list and Upgrade Notes for migration steps.

TL;DR

$user1 = User::find(1);
$user2 = User::find(2);

// Friendships
$user1->befriend($user2);
$user2->acceptFriendRequest($user1);

// The messy breakup :(
$user2->unfriend($user1);

// Verifications (message is optional)
$user1->verify($user2, "Worked together on several Laravel projects.");
$user2->acceptVerificationRequest($user1);

if ($user1->isVerifiedWith($user2)) {
    echo "Verified!";
}

Documentation

To keep this README concise, the full documentation lives under docs/:

  • Overview
  • Installation
  • Configuration
  • Friendships
  • Verifications
  • Interactions (Follow/Like/Favorite/Report/Subscribe/Vote/View)
  • Ratings
  • Migrations
  • Events
  • Testing
  • FAQ
  • Upgrade Notes

Quickstart

  1. Install
composer require multicaret/laravel-acquaintances
  1. Publish (optional) and migrate
php artisan vendor:publish --provider="Multicaret\\Acquaintances\\AcquaintancesServiceProvider"
php artisan migrate

Interactions-Only Mode

If you only need interactions (Follow, Like, Favorite, Subscribe, Vote, View, Report, Rate) and don't need Friendships or Verifications, disable them in config/acquaintances.php:

'features' => [
    'interactions' => true,
    'friendships' => false,
    'verifications' => false,
],

This prevents friendship and verification migrations from being loaded or published, keeping your database lean.

You can also publish migrations for specific features using granular tags:

# Only interaction migrations
php artisan vendor:publish --tag=acquaintances-migrations-interactions

# Only friendship migrations
php artisan vendor:publish --tag=acquaintances-migrations-friendships

# Only verification migrations
php artisan vendor:publish --tag=acquaintances-migrations-verifications

Custom User Model Location

If your User model lives in a non-standard namespace (e.g., App\Models\Core\User), set user_model_class_name in config/acquaintances.php:

'user_model_class_name' => \App\Models\Core\User::class,

When null (default), the package resolves the user model from model_namespace + models.user (i.e., App\Models\User).

  1. Add traits to your models
use Multicaret\\Acquaintances\\Traits\\Friendable;
use Multicaret\\Acquaintances\\Traits\\Verifiable;
use Multicaret\\Acquaintances\\Traits\\CanFollow;
use Multicaret\\Acquaintances\\Traits\\CanBeFollowed;
use Multicaret\\Acquaintances\\Traits\\CanLike;
use Multicaret\\Acquaintances\\Traits\\CanBeLiked;
use Multicaret\\Acquaintances\\Traits\\CanRate;
use Multicaret\\Acquaintances\\Traits\\CanBeRated;

class User extends Model {
    use Friendable, Verifiable;
    use CanFollow, CanBeFollowed;
    use CanLike, CanBeLiked;
    use CanRate, CanBeRated;
}

Explore the feature guides linked above for full APIs and examples.

Compatibility

Version PHP Laravel
v4 >= 8.1 9, 10, 11, 12, 13
v3.x >= 8.0 9, 10, 11, 12

Contributing / Changelog

  • Contributing: see CONTRIBUTING.md
  • Changes: see CHANGELOG.md

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

PHPacquaintancesactivitydownvoteeloquent-models

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类后端框架
定价开源

> 相关工具

N
Node.js
基于 V8 的 JavaScript 运行时
D
Django
Python 高级 Web 框架
S
Spring Boot
Java 生态主流微服务框架