Heim > PHP-Framework > Laravel > Laravel-Entwicklung: Wie sende ich Benachrichtigungen mit Laravel Notification?

Laravel-Entwicklung: Wie sende ich Benachrichtigungen mit Laravel Notification?

王林
Freigeben: 2023-06-13 14:55:46
Original
1904 Leute haben es durchsucht

Laravel ist ein weit verbreitetes PHP-Webanwendungs-Framework, das eine moderne, elegante und funktionsreiche Syntax für die Erstellung von Webanwendungen bietet. Das Laravel-Framework bietet eine breite Palette an Tools und Funktionen, einschließlich des Sendens von Benachrichtigungen. Benachrichtigungen sind Technologien, die visuelle oder sprachliche Nachrichten an Benutzer oder andere Systeme senden. Benachrichtigungen können einfache Warnungen oder komplexe Anweisungen sein und können asynchron sein, sodass sie bei lang andauernden Vorgängen verwendet werden können.

In diesem Artikel erfahren Sie, wie Sie Laravel Notification zum Versenden von Benachrichtigungen verwenden. Wir werden uns auch Benachrichtigungstypen, Ereignisse und Kanäle ansehen. Unser Ziel ist es, eine einfache Webanwendung zu erstellen, die Laravel-Benachrichtigungen verwendet, um Benachrichtigungen zu senden und deren verschiedene Typen zu verstehen.

Voraussetzungen

Bevor wir uns mit dem Inhalt dieses Artikels befassen, müssen wir sicherstellen, dass die folgenden Voraussetzungen erfüllt sind:

  1. Sie haben Laravel lokal oder auf dem Server installiert.
  2. Du bist bereits mit dem Laravel-Framework vertraut und verstehst, wie man Controller, Routen und Ansichten erstellt.
  3. Sie haben die Datenbank (MySQL, PostgreSQL usw.) installiert und in der Laravel-Einstellungsdatei eingerichtet.
  4. Sie haben die E-Mail-bezogene Konfiguration eingerichtet (dies ist für einige Benachrichtigungstypen erforderlich).

Laravel Notifications

Laravel Notifications ist eine leistungsstarke Klasse zur Vereinfachung der Handhabung von Benachrichtigungen. Benachrichtigungen können an mehrere Kanäle gesendet werden, darunter E-Mail, SMS, Mail und Instant-Messaging-Apps wie Slack. Mit Laravel Notifications können Sie Benachrichtigungen über einen bestimmten Kanal erstellen und diese schnell an Benutzer senden. Benachrichtigungen können asynchron verarbeitet werden, um Verzögerungen beim Start des Benachrichtigungsversands zu vermeiden.

Laravel-Benachrichtigungen bestehen grundsätzlich aus den folgenden zwei Teilen:

  1. Die Nachricht selbst: der Nachrichtentext, der zum Deklarieren und Definieren von Benachrichtigungen in der Anwendung verwendet wird.
  2. Kanal: Wird zum Senden und Verarbeiten verschiedener Arten von Benachrichtigungsnachrichten verwendet.

Die meisten Entwickler definieren den Benachrichtigungstyp normalerweise als Modellmethode innerhalb der Anwendung, sodass die Methode aufgerufen wird, wenn eine Benachrichtigung gesendet werden muss.

Erstellen von Benachrichtigungen in Laravel

Die Benachrichtigungen von Laravel sind im Grunde einfache PHP-Klassen, die die Basisklasse IlluminateNotificationsNotification des Frameworks erben. Jede Benachrichtigung kann über mehrere Kanäle gesendet werden, darunter E-Mail, Slack und benutzerdefinierte Webhooks.

Um Benachrichtigungen zu verwenden, definieren Sie Benachrichtigungsklassen in Ihrer Anwendung. Die Benachrichtigungsklasse stellt die Rich-Text-Nachricht (Nachrichtentext) der Benachrichtigung dar, die als Nachrichteninstanz erstellt wird, bevor die Benachrichtigungsnachricht an den Kanal gesendet wird. Senden Sie diese Benachrichtigung anschließend zur Verarbeitung über einen anderen Kanal.

Zum Beispiel können wir eine Nachrichtenbenachrichtigung erstellen, die Benutzer daran erinnert, dass ihr Abonnement bald abläuft. Um diese Benachrichtigung zu senden, können wir eine neue Benachrichtigungsklasse in der Lavarel-Anwendung erstellen wie:

php artisan make:notification SubscriptionEnding
Nach dem Login kopieren

E-Mail per Benachrichtigung senden

Da wir nun eine Abonnement-Endbenachrichtigung erstellt haben, können wir die Benachrichtigung per E-Mail senden.

Sie müssen das Mail-System von Laravel konfigurieren, um E-Mails senden zu können. Sie können Artisan verwenden, um sicherzustellen, dass Ihre SMTP/IMAP-Einstellungen korrekt sind, um den Mail-Dienst in Ihrer Anwendung zu verwenden.

php artisan config:cache
Nach dem Login kopieren

Da wir nun die E-Mail-bezogenen Einstellungen konfiguriert haben, müssen wir die Methode toMail() in der Benachrichtigungsklasse implementieren. Wir schreiben die E-Mail-Vorlage in dieser Methode:

class SubscriptionEnding extends Notification
{
    use Queueable;

    public function __construct($data)
    {
        $this->data = $data;
    }
  
    public function via($notifiable)
    {
        return ['mail'];
    }
    
    public function toMail($notifiable)
    {
        return (new MailMessage)
                    ->line('Hi ' . $this->data['name'] . ', your subscription is about to end in ' . $this->data['days'] . ' days. Please log in to your account and renew your subscription to continue using our services.')
                    ->action('Renew Subscription', url('/subscription'))
                    ->line('Thank you for using our service.');
    }
  
    public function toArray($notifiable)
    {
        return [
            //
        ];
    }
}
Nach dem Login kopieren

Wenn wir die E-Mail-Vorlage anpassen müssen, tun wir das Sie können die Laravel Mail-Ansicht verwenden, um Ihre eigene HTML/CSS-Vorlage zu schreiben:

public function toMail($notifiable)
{
    return (new MailMessage)->markdown('emails.subscription-ending', [
        'name' => $this->data['name'],
        'days' => $this->data['days']
    ]);
}
Nach dem Login kopieren

Der letzte Schritt besteht darin, unsere Benachrichtigung an einen bestimmten Benutzer zu senden, zum Beispiel:

$user = User::find(1)->notify(new SubscriptionEnding(['name' => 'John Doe', 'days' => 5]));
Nach dem Login kopieren

Wir haben erfolgreich eine E-Mail-Benachrichtigung gesendet, wenn das Abonnement bald abläuft . Wenn Sie diese Schritte befolgen, können Sie ganz einfach benutzerdefinierte Benachrichtigungen erstellen, benutzerdefinierte Kanäle und Nachrichten für sie schreiben und E-Mails, Textnachrichten und andere Benachrichtigungen über sie senden.

Benachrichtigungen zur Routenmodellbindung verwenden

Die Routenmodellbindung ist eine der sehr leistungsstarken Funktionen in Laravel-Modellen. Die sogenannte Routenbindung ermöglicht es Laravel, automatisch andere Bindungen zu finden, die zum Modell passen, und diese automatisch in die Controller-Methode einzuschleusen.

In Laravel wird die Bindung aufrufender Modellinstanzen an Routen als „Routenmodellbindung“ bezeichnet. In den meisten Fällen verwenden wir beim Routing eine bestimmte Kennung, um Objekte zu finden, abzurufen und abzurufen. Bei der Routenmodellbindung lädt Laravel das Modell jedoch automatisch in die Parameter der Route.

Laravel-Benachrichtigungen können auch Routenmodellbindung verwenden. Dies ist ein einfaches Beispiel, das die Verwendung von Benachrichtigungen bei der Routing-Modellbindung demonstriert.

Mit den statischen Befehlen von Artisan können wir schnell Beispiel-Controller und Routen erstellen:

php artisan make:controller UserController --resource --no-model
Nach dem Login kopieren

Definieren Sie den Kontext im Modell:

class User extends Authenticatable
{
    public function routeNotificationForMail()
    {
        return $this->email;
    }
}
Nach dem Login kopieren

Als nächstes müssen wir ihn in der Routing-Datei definieren, zum Beispiel platzieren wir die Route in Routen/Web .php In der Datei:

Route::get('users/{user}', 'UserController@show');
Nach dem Login kopieren

Benachrichtigung in der Controller-Methode implementieren:

class UserController extends Controller
{
    public function show(User $user)
    {
        $details = [
            'title' => '你好啊!',
            'body' => '感谢你使用我们的系统!'
        ];
  
        $user->notify(new AppNotificationsSimpleNotification($details));
  
        return view('users.show', ['user' => $user]);
    }
}
Nach dem Login kopieren

Dadurch wird eine Benachrichtigung an den Benutzer gesendet. Die Benachrichtigung sollte einen Titel und einen Text enthalten.

Fazit

Laravel Notification ist eine effektive Möglichkeit, Ihrer Webanwendung Benachrichtigungsfunktionen hinzuzufügen. Mit dem leistungsstarken System von Laravel können wir Benachrichtigungen einfach definieren und verwalten und eine Vielzahl unterschiedlicher Kanäle zum Versenden von Benachrichtigungen nutzen. In diesem Artikel haben wir erfahren, wie Sie Laravel Notification zum Senden von Benachrichtigungen einschließlich E-Mail, SMS, Post und Slack verwenden. Wir haben auch andere Funktionen von Laravel Notification untersucht, darunter Benachrichtigungstypen, Ereignisse und Kanäle.

Das obige ist der detaillierte Inhalt vonLaravel-Entwicklung: Wie sende ich Benachrichtigungen mit Laravel Notification?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage