Broadcast notifications
To start, make sure the package is installed -
@livewire('notifications')
should be in your Blade layout somewhere.
By default, Filament will send flash notifications via the Laravel session. However, you may wish that your notifications are "broadcast" to a user in real-time, instead. This could be used to send a temporary success notification from a queued job after it has finished processing.
We have a native integration with Laravel Echo. Make sure Echo is installed, as well as a server-side websockets integration like Pusher.
Sending notifications
There are several ways to send broadcast notifications, depending on which one suits you best.
You may use our fluent API:
use Filament\Notifications\Notification;
$recipient = auth()->user();
Notification::make()
->title('Saved successfully')
->broadcast($recipient);
Or, use the notify()
method:
use Filament\Notifications\Notification;
$recipient = auth()->user();
$recipient->notify(
Notification::make()
->title('Saved successfully')
->toBroadcast(),
)
Alternatively, use a traditional Laravel notification class by returning the notification from the toBroadcast()
method:
use App\Models\User;
use Filament\Notifications\Notification;
use Illuminate\Notifications\Messages\BroadcastMessage;
public function toBroadcast(User $notifiable): BroadcastMessage
{
return Notification::make()
->title('Saved successfully')
->getBroadcastMessage();
}