Skip to main content

Was sind Notifications

Das Notification-System von Laravel bietet eine einheitliche API, um Benachrichtigungen über verschiedene Kanäle wie E-Mail, SMS, Slack oder Datenbank zu versenden. Unterschied zwischen Mail und Notification Wenn Sie ein und dieselbe Benachrichtigung – etwa die Bestätigung einer bezahlten Rechnung – über mehrere Kanäle senden möchten, sind Notifications die bessere Wahl.

Eine Notification-Klasse erstellen

Erstellen Sie die Klasse mit dem Artisan-Befehl make:notification.
Die generierte Klasse liegt im Verzeichnis app/Notifications/. Sie enthält die Methode via() sowie Methoden zur Nachrichtengenerierung für die einzelnen Kanäle.

Notifications versenden

Mit dem Notifiable-Trait

App\Models\User bindet standardmäßig das Trait Notifiable ein. Mit der Methode notify() senden Sie eine Benachrichtigung.
Das Trait Notifiable ist nicht auf das User-Modell beschränkt – Sie können es jedem beliebigen Modell hinzufügen.

Mit der Notification-Fassade

Um mehrere Benutzer gleichzeitig zu benachrichtigen, verwenden Sie die Fassade Notification.
Um sofort zu senden (und die Queue zu umgehen), verwenden Sie sendNow().

Kanäle festlegen

Die Methode via() liefert die zu verwendenden Kanäle als Array zurück.
Sie können die Kanäle auch abhängig von den Präferenzen des Benutzers wechseln.
Die wichtigsten verfügbaren Kanäle:

Benachrichtigungen per E-Mail-Kanal

In der Methode toMail() geben Sie eine MailMessage-Instanz zurück.
Die wichtigsten Methoden von MailMessage: Wenn Sie über einen Fehler informieren, färbt die Methode error() den Button rot.

Markdown-Benachrichtigungs-E-Mails

Sie können auch reichhaltige E-Mails im Markdown-Format nutzen. Erzeugen Sie die Klasse mit der Option --markdown.
Statt toMail() verwenden Sie toMarkdownMail() – bzw. markdown() in der Message.

Benachrichtigungen per Datenbank-Kanal

Über den Datenbank-Kanal speichern Sie Benachrichtigungen in der DB und können sie in der UI Ihrer Anwendung anzeigen.

Tabelle vorbereiten

Legen Sie zunächst die Tabelle notifications an.

Methode toArray definieren

In der Methode toArray() geben Sie die zu speichernden Daten als Array zurück.
Diese Daten werden in der Spalte data der Tabelle notifications im JSON-Format abgelegt.

Benachrichtigungen abrufen

Über die vom Notifiable-Trait bereitgestellte Beziehung notifications rufen Sie die Benachrichtigungen ab.
Nur ungelesene Benachrichtigungen erhalten Sie über unreadNotifications.

Als gelesen markieren

Mit markAsRead() markieren Sie eine Benachrichtigung als gelesen.

Notifications über Queues verarbeiten

Wenn der Versand länger dauert, implementieren Sie das Interface ShouldQueue und das Trait Queueable, um die Verarbeitung in eine Queue auszulagern. Bei mit make:notification erzeugten Klassen sind sie bereits importiert.
Sobald ShouldQueue implementiert ist, wandert die Benachrichtigung schon beim Aufruf von notify() automatisch in die Queue.
Auch ein verzögerter Versand ist möglich.

Gleichzeitiger Versand über mehrere Kanäle

Wenn via() mehrere Kanäle zurückgibt und Sie die jeweiligen Methoden definieren, wird dieselbe Benachrichtigung gleichzeitig über alle angegebenen Kanäle versendet.

On-Demand-Benachrichtigungen

Um Benutzer zu benachrichtigen, die kein Konto in Ihrer Anwendung haben, verwenden Sie Notification::route().

Zusammenfassung

Zuletzt geändert am 13. Juli 2026