57 lines
1.8 KiB
Markdown
57 lines
1.8 KiB
Markdown
---
|
|
title: Broadcast notifications
|
|
---
|
|
|
|
## Overview
|
|
|
|
> To start, make sure the package is [installed](installation) - `@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](https://laravel.com/docs/broadcasting#client-side-installation). Make sure Echo is installed, as well as a [server-side websockets integration](https://laravel.com/docs/broadcasting#server-side-installation) like Pusher.
|
|
|
|
## Sending broadcast notifications
|
|
|
|
There are several ways to send broadcast notifications, depending on which one suits you best.
|
|
|
|
You may use our fluent API:
|
|
|
|
```php
|
|
use Filament\Notifications\Notification;
|
|
|
|
$recipient = auth()->user();
|
|
|
|
Notification::make()
|
|
->title('Saved successfully')
|
|
->broadcast($recipient);
|
|
```
|
|
|
|
Or, use the `notify()` method:
|
|
|
|
```php
|
|
use Filament\Notifications\Notification;
|
|
|
|
$recipient = auth()->user();
|
|
|
|
$recipient->notify(
|
|
Notification::make()
|
|
->title('Saved successfully')
|
|
->toBroadcast(),
|
|
)
|
|
```
|
|
|
|
Alternatively, use a traditional [Laravel notification class](https://laravel.com/docs/notifications#generating-notifications) by returning the notification from the `toBroadcast()` method:
|
|
|
|
```php
|
|
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();
|
|
}
|
|
```
|