laravel-reacts maintained by pharaonic
Description
Polymorphic emoji reactions for Laravel Eloquent models, with registered types, grouped catalogs, single or multiple mode, and database-enforced uniqueness.
Author
Last update
2026/11/14 10:02
(dev-develop)
License
Downloads
0
Last update
2026/11/14 10:02
License
Require
- ext-mbstring *
- php >=8.3 <8.6
- illuminate/contracts ^13.0
- illuminate/database ^13.0
- illuminate/support ^13.0
Last update
2026/11/14 10:02
License
Require
- php >=8.3 <8.6
- ext-mbstring *
- illuminate/contracts ^13.0
- illuminate/database ^13.0
- illuminate/support ^13.0
Last update
2026/11/14 10:02
License
Require
- php >=8.3 <8.6
- ext-mbstring *
- illuminate/contracts ^13.0
- illuminate/database ^13.0
- illuminate/support ^13.0
Last update
2026/11/14 10:02
License
Require
- php >=8.2 <8.6
- ext-mbstring *
- illuminate/contracts ^12.0
- illuminate/database ^12.0
- illuminate/support ^12.0
Last update
2026/11/14 10:02
License
Require
- php >=8.2 <8.6
- ext-mbstring *
- illuminate/contracts ^12.0
- illuminate/database ^12.0
- illuminate/support ^12.0
Last update
2026/11/14 10:02
License
Require
- php >=8.2 <8.5
- ext-mbstring *
- illuminate/contracts ^11.0
- illuminate/database ^11.0
- illuminate/support ^11.0
Last update
2026/11/14 10:02
License
Require
- php >=8.2 <8.5
- ext-mbstring *
- illuminate/contracts ^11.0
- illuminate/database ^11.0
- illuminate/support ^11.0
Last update
2026/11/14 10:02
License
Require
- php >=8.1 <8.4
- ext-mbstring *
- illuminate/contracts ^10.0
- illuminate/database ^10.0
- illuminate/support ^10.0
Last update
2026/11/14 10:02
License
Require
- php >=8.1 <8.4
- ext-mbstring *
- illuminate/contracts ^10.0
- illuminate/database ^10.0
- illuminate/support ^10.0
Last update
2026/11/14 10:02
License
Require
- php >=8.0 <8.3
- ext-mbstring *
- illuminate/contracts ^9.33
- illuminate/database ^9.33
- illuminate/support ^9.33
Last update
2026/11/14 10:02
License
Require
- php >=8.0 <8.3
- ext-mbstring *
- illuminate/contracts ^9.33
- illuminate/database ^9.33
- illuminate/support ^9.33
Last update
2026/11/14 10:02
License
Require
- php >=8.0 <8.2
- ext-mbstring *
- illuminate/contracts ^8.75
- illuminate/database ^8.75
- illuminate/support ^8.75
Last update
2026/11/14 10:02
License
Require
- php >=8.0 <8.2
- ext-mbstring *
- illuminate/contracts ^8.75
- illuminate/database ^8.75
- illuminate/support ^8.75
Last update
2026/11/14 10:02
License
Require
- php >=8.0 <8.1
- ext-mbstring *
- illuminate/contracts ^7.30
- illuminate/database ^7.30
- illuminate/support ^7.30
Last update
2026/11/14 10:02
License
Require
- php >=8.0 <8.1
- ext-mbstring *
- illuminate/contracts ^7.30
- illuminate/database ^7.30
- illuminate/support ^7.30
Last update
2026/11/14 10:02
License
Require
- php >=8.0 <8.1
- ext-mbstring *
- illuminate/contracts ^6.20
- illuminate/database ^6.20
- illuminate/support ^6.20
Last update
2026/11/14 10:02
License
Require
- php >=8.0 <8.1
- ext-mbstring *
- illuminate/contracts ^6.20
- illuminate/database ^6.20
- illuminate/support ^6.20
Last update
2026/11/14 09:40
License
Require
- php >=8.2 <8.5
- ext-mbstring *
- illuminate/contracts ^11.0
- illuminate/database ^11.0
- illuminate/support ^11.0
Last update
2026/11/14 09:40
License
Require
- php >=8.2 <8.6
- ext-mbstring *
- illuminate/contracts ^12.0
- illuminate/database ^12.0
- illuminate/support ^12.0
Last update
2026/11/14 09:40
License
Require
- php >=8.1 <8.4
- ext-mbstring *
- illuminate/contracts ^10.0
- illuminate/database ^10.0
- illuminate/support ^10.0
Last update
2026/11/14 09:40
License
Require
- php >=8.0 <8.2
- ext-mbstring *
- illuminate/contracts ^8.75
- illuminate/database ^8.75
- illuminate/support ^8.75
Last update
2026/11/14 09:40
License
Require
- php >=8.0 <8.3
- ext-mbstring *
- illuminate/contracts ^9.33
- illuminate/database ^9.33
- illuminate/support ^9.33
Last update
2026/11/14 09:40
License
Require
- php >=8.0 <8.1
- ext-mbstring *
- illuminate/contracts ^6.20
- illuminate/database ^6.20
- illuminate/support ^6.20
Last update
2026/11/14 09:40
License
Require
- php >=8.0 <8.1
- ext-mbstring *
- illuminate/contracts ^7.30
- illuminate/database ^7.30
- illuminate/support ^7.30
Last update
2026/11/14 08:56
License
Require
- php >=8.1 <8.4
- ext-mbstring *
- illuminate/contracts ^10.0
- illuminate/database ^10.0
- illuminate/support ^10.0
Last update
2026/11/14 08:56
License
Require
- php >=8.2 <8.5
- ext-mbstring *
- illuminate/contracts ^11.0
- illuminate/database ^11.0
- illuminate/support ^11.0
Last update
2026/11/14 08:56
License
Require
- php >=8.0 <8.1
- ext-mbstring *
- illuminate/contracts ^6.20
- illuminate/database ^6.20
- illuminate/support ^6.20
Last update
2026/11/14 08:56
License
Require
- php >=8.0 <8.1
- ext-mbstring *
- illuminate/contracts ^7.30
- illuminate/database ^7.30
- illuminate/support ^7.30
Last update
2026/11/14 08:56
License
Require
- php >=8.0 <8.2
- ext-mbstring *
- illuminate/contracts ^8.75
- illuminate/database ^8.75
- illuminate/support ^8.75
Last update
2026/11/14 08:56
License
Require
- php >=8.0 <8.3
- ext-mbstring *
- illuminate/contracts ^9.33
- illuminate/database ^9.33
- illuminate/support ^9.33
Last update
2026/11/14 07:56
License
Require
- php >=8.1 <8.4
- ext-mbstring *
- illuminate/contracts ^10.0
- illuminate/database ^10.0
- illuminate/support ^10.0
Last update
2026/11/14 07:56
License
Require
- php >=8.0 <8.1
- ext-mbstring *
- illuminate/contracts ^6.20
- illuminate/database ^6.20
- illuminate/support ^6.20
Last update
2026/11/14 07:56
License
Require
- php >=8.0 <8.1
- ext-mbstring *
- illuminate/contracts ^7.30
- illuminate/database ^7.30
- illuminate/support ^7.30
Last update
2026/11/14 07:56
License
Require
- php >=8.0 <8.2
- ext-mbstring *
- illuminate/contracts ^8.75
- illuminate/database ^8.75
- illuminate/support ^8.75
Last update
2026/11/14 07:56
License
Require
- php >=8.0 <8.3
- ext-mbstring *
- illuminate/contracts ^9.33
- illuminate/database ^9.33
- illuminate/support ^9.33
Last update
2026/11/13 21:41
License
Require
- php >=8.0 <8.1
- ext-mbstring *
- illuminate/contracts ^7.30
- illuminate/database ^7.30
- illuminate/support ^7.30
Last update
2026/11/13 21:41
License
Require
- php >=8.0 <8.2
- ext-mbstring *
- illuminate/contracts ^8.75
- illuminate/database ^8.75
- illuminate/support ^8.75
Last update
2026/11/13 21:41
License
Require
- php >=8.0 <8.1
- ext-mbstring *
- illuminate/contracts ^6.20
- illuminate/database ^6.20
- illuminate/support ^6.20
Installation
composer require pharaonic/laravel-reacts
php artisan migrate
The service provider is registered automatically, and migrate creates the reactions table. Publish the configuration to define your own reaction types and groups:
php artisan vendor:publish --tag=reacts-config
Usage
Add CanReact to the model that reacts and HasReactions to the model that receives reactions:
use Illuminate\Foundation\Auth\User as Authenticatable;
use Pharaonic\Laravel\Reacts\Concerns\CanReact;
class User extends Authenticatable
{
use CanReact;
}
use Illuminate\Database\Eloquent\Model;
use Pharaonic\Laravel\Reacts\Concerns\HasReactions;
class Post extends Model
{
use HasReactions;
}
use Pharaonic\Laravel\Reacts\Support\ReactionView;
$user->react($post, 'like'); // true: added
$user->react($post, 'love'); // true: a second type (multiple mode, the default)
$user->react($post, 'love'); // false: already there
$user->toggleReaction($post, 'like'); // false: removed
$user->hasReacted($post, 'love'); // true
$user->react($chatMessage, '🚀'); // true: in a group that allows free-form emoji
$post->reactionCounts(); // ['love' => 1]
ReactionView::for($post, $user)->toArray(); // choices, counts and the viewer's selection, for Blade or JSON
Documentation
Full documentation: Laravel Reacts Documentation.
Support & Security
See SUPPORT.md and SECURITY.md. Contributions are welcome; see CONTRIBUTING.md.
License
MIT. See LICENSE.