Notifications
Notification Types
Two notification classes are included:
CommentRepliedNotification
Sent to all thread subscribers when a new comment or reply is posted. The comment author is excluded from receiving their own notification.
UserMentionedNotification
Sent to a user when they are @mentioned in a comment. Self-mentions are ignored.
Channels
// config/comments.php
'notifications' => [
'channels' => ['database'],
'enabled' => true,
],
Available channels: 'database' and 'mail'. Add both to send email notifications alongside database notifications:
'notifications' => [
'channels' => ['database', 'mail'],
'enabled' => true,
],
Subscriptions
Users can subscribe to comment threads on any commentable model. Subscribers receive notifications when new comments are posted.
Auto-Subscribe
'subscriptions' => [
'auto_subscribe' => true,
],
When enabled:
- Users are auto-subscribed when they post a comment
- Users are auto-subscribed when they are @mentioned
Manual Subscription
Users can toggle their subscription using the subscribe/unsubscribe button in the comments UI.
Programmatic Access
use Relaticle\Comments\Models\Subscription;
// Check subscription status
Subscription::isSubscribed($commentable, $user);
// Subscribe/unsubscribe
Subscription::subscribe($commentable, $user);
Subscription::unsubscribe($commentable, $user);
// Get all subscribers for a commentable
$subscribers = Subscription::subscribersFor($commentable);
Events
| Event | Trigger | Broadcasts |
|---|---|---|
CommentCreated | New comment or reply | Yes |
CommentUpdated | Comment edited | Yes |
CommentDeleted | Comment soft-deleted | Yes |
CommentReacted | Reaction added/removed | Yes |
UserMentioned | User @mentioned | No |
Real-time Updates
Broadcasting
Enable broadcasting for instant updates across browser sessions:
// config/comments.php
'broadcasting' => [
'enabled' => true,
'channel_prefix' => 'comments',
],
Events are broadcast on private channels: {prefix}.{commentable_type}.{commentable_id}
This requires Laravel Echo and a broadcasting driver (Pusher, Ably, etc.) configured in your application.
Polling Fallback
When broadcasting is disabled, the Livewire component polls for updates:
'polling' => [
'interval' => '10s',
],
Set to null to disable polling entirely.
Disabling Notifications
'notifications' => [
'enabled' => false,
],
This disables all notification dispatching. Subscriptions and events still work, but no notifications are sent.