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 reacted if ($post->isReacted($user)) { echo "User has reacted to this post"; } // Check if the currently authenticated user reacted if ($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