Files
relaticle-comments/docs/content/2.essentials/6.notifications.md
manukminasyan a4d4418963 docs: update all documentation for refactored naming conventions
- CanComment trait replaces IsCommenter
- Commentator interface replaces Commenter
- Models moved to Models\ namespace (Comment, Reaction, Attachment, Subscription)
- commenter_type/commenter_id columns replace user_type/user_id
- CommentsConfig replaces Config class
- table_names config key replaces tables
- getCommentDisplayName() replaces getCommentName()
2026-03-27 15:01:50 +04:00

2.8 KiB

title, description, navigation, seo
title description navigation seo
Notifications Comment notifications, subscriptions, and real-time updates.
icon
i-lucide-bell
description
Configure comment notifications, subscriptions, broadcasting, and polling.

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.