Skip to main content

Wat is een Notification

Het notificatiesysteem (Notification) van Laravel is een mechanisme om via een uniforme API notificaties te versturen naar meerdere bezorgkanalen, zoals e-mail, sms, Slack en de database. Het verschil tussen Mail en Notification Wil je dezelfde melding naar meerdere kanalen sturen, zoals een bevestiging dat een factuur is betaald, dan is een Notification de juiste keuze.

Een Notification-klasse maken

Genereer een klasse met het Artisan-commando make:notification.
De gegenereerde klasse komt in de directory app/Notifications/ te staan. De klasse bevat een via()-methode en methoden die per kanaal het bericht genereren.

Notificaties versturen

Met de Notifiable-trait

App\Models\User bevat standaard de Notifiable-trait. Met de methode notify() verstuur je een notificatie.
De Notifiable-trait is niet beperkt tot het User-model; je kunt hem aan elk model toevoegen.

Met de Notification-facade

Om naar meerdere gebruikers tegelijk te versturen, gebruik je de Notification-facade.
Wil je direct versturen (de queue overslaan), gebruik dan sendNow().

Bezorgkanalen opgeven

De via()-methode geeft een array terug met de te gebruiken kanalen.
Je kunt de kanalen ook laten afhangen van de voorkeuren van de gebruiker.
De belangrijkste beschikbare kanalen zijn:

Notificaties via het mailkanaal

De methode toMail() geeft een MailMessage-instantie terug.
De belangrijkste methoden van MailMessage zijn: Meld je een fout, voeg dan de methode error() toe: de knop wordt dan rood.

Markdown-notificatiemails

Je kunt ook rijke e-mails in Markdown-formaat gebruiken. Genereer de klasse met de optie --markdown.
In plaats van toMail() gebruik je toMarkdownMail().

Notificaties via het databasekanaal

Met het databasekanaal sla je notificaties op in de database en toon je ze in de UI van je app.

De tabel voorbereiden

Maak eerst de tabel notifications aan.

De toArray-methode definiëren

De methode toArray() geeft de op te slaan data als array terug.
Deze data wordt in JSON-formaat opgeslagen in de kolom data van de tabel notifications.

Notificaties ophalen

Met de notifications-relatie die de Notifiable-trait biedt, haal je notificaties op.
Wil je alleen de ongelezen notificaties ophalen, gebruik dan unreadNotifications.

Als gelezen markeren

Met markAsRead() markeer je een notificatie als gelezen.

Notificaties via de queue verwerken

Duurt het versturen van een notificatie lang, voeg dan de interface ShouldQueue en de trait Queueable toe om de notificatie via de queue te verwerken. In klassen die je met make:notification genereert, zijn deze al geïmporteerd.
Implementeer je ShouldQueue, dan wordt de notificatie automatisch in de queue geplaatst zodra je notify() aanroept.
Vertraagd versturen kan ook.

Tegelijk naar meerdere kanalen versturen

Door in de via()-methode meerdere kanalen terug te geven en voor elk kanaal een methode te definiëren, verstuur je dezelfde notificatie tegelijk naar meerdere kanalen.

On-demand notificaties

Wil je ook notificaties sturen naar mensen zonder account in je app, gebruik dan Notification::route().

Samenvatting

Laatst gewijzigd op 6 september 2026