Add reactions (like 👍, dislike 👎, love ❤️, haha 😄, etc.) to any Eloquent model in Laravel. Perfect for blogs, comments, posts, reviews, and more.
You can install the package via composer:
composer require phpdominicana/reactify
You can publish and run the migrations with:
php artisan vendor:publish --tag="reactify-migrations"
php artisan migrate
You can publish the config file with:
php artisan vendor:publish --tag="reactify-config"
use App\Traits\HasReactions;
class Post extends Model
{
use HasReactions;
}
$post->react($userId, Reaction::LIKE);
$post->unReact($userId, Reaction::LIKE);
$post->reactions(Reaction::LIKE); // returns integer count
Get total reactions for all types
$post->reactionCounter; // returns a ReactionCounter model with all counts
You can define your own reactions via constants:
enum Reaction: string
{
case LIKE = 'like';
case DISLIKE = 'dislike';
case LOVE = 'love';
case ANGRY = 'angry';
case SAD = 'sad';
case HAPPY = 'happy';
case WOW = 'wow';
case CARE = 'care';
case THANKFUL = 'thankful';
case SUPPORT = 'support';
case LAUGH = 'laugh';
case CONFUSED = 'confused';
case HUG = 'hug';
case KISS = 'kiss';
case SMILE = 'smile';
case HEART = 'heart';
case STAR = 'star';
case THUMBS_UP = 'thumbs_up';
case THUMBS_DOWN = 'thumbs_down';
case CLAP = 'clap';
case BRAVO = 'bravo';
case CELEBRATE = 'celebrate';
case EYES = 'eyes';
case HANDSHAKE = 'handshake';
case PRAY = 'pray';
case SALUTE = 'salute';
case TROPHY = 'trophy';
case WELCOME = 'welcome';
case WINK = 'wink';
case YUMMY = 'yummy';
case COOL = 'cool';
case DROOL = 'drool';
case FLOWER = 'flower';
case GIFT = 'gift';
case GOOD = 'good';
case HIGH_FIVE = 'high_five';
case HUGS = 'hugs';
case KISSES = 'kisses';
case LOVE_YOU = 'love_you';
case MISS_YOU = 'miss_you';
case NO = 'no';
case OK = 'ok';
case OK_HAND = 'ok_hand';
case PARTY = 'party';
case PEACE = 'peace';
case PIZZA = 'pizza';
case PRIDE = 'pride';
case QUESTION = 'question';
case RAINBOW = 'rainbow';
case ROCKET = 'rocket';
case SICK = 'sick';
case SORRY = 'sorry';
case SPARKLES = 'sparkles';
case STRONG = 'strong';
case SUN = 'sun';
case THANK_YOU = 'thank_you';
case THINKING = 'thinking';
}
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.