The Laravel Reactions package is a simple and flexible package to add reaction functionality to any Eloquent model in your Laravel application. It provides traits needed to react to a model, define a model that is the "reactor", and queries related to model reactions.
Laravel Reactions is a simple and flexible package that enables you to add reaction functionality (such as 👍, ❤️, 😂, etc.) to any Eloquent model in your Laravel application. Whether you're building a social network, blog, or forum, this package makes it easy for users to express themselves through customizable reactions.
Here are some basic usage examples from the package's readme:
use Binafy\LaravelReaction\Traits\Reactor; class User extends Authenticatable{ use Reactor;} use Binafy\LaravelReaction\Contracts\HasReaction;use Binafy\LaravelReaction\Traits\Reactable; class Post extends Model implements HasReaction{ use Reactable;} use Binafy\LaravelReaction\Enums\LaravelReactionTypeEnum; $user->reaction(LaravelReactionTypeEnum::REACTION_LOVE, $post);// Use a string instead$user->reaction('love', $post); // Remove a reaction for a user$post->removeReaction(LaravelReactionTypeEnum::REACTION_LIKE, $user);
You can also check reactions, and the Laravel Reactions package gives you several methods for querying data:
// Check if a specific user reactedif ($post->isReacted($user)) { echo "User has reacted to this post";} // Check if the currently authenticated user reactedif ($post->isReacted()) { echo "You have reacted to this post";} // Get reaction count$post->getReactionsWithCount(); // Get all users that have reacted$post->getReactors();
Main Features
- Add reactions to any model (e.g., posts, comments, messages)
- Multiple reaction types (like, love, laugh, etc.)
- Easy API for adding/removing reactions
- Track who reacted and how
- Eloquent relationships for seamless integration
- Built-in support for custom reaction types
- Lightweight and easy to customize
👩💻 You can get started with this package on GitHub: binafy/laravel-reactions