Heim > Artikel > PHP-Framework > Laravel-Entwicklung: Wie sende ich Benachrichtigungen mit Laravel Notification?
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.
Bevor wir uns mit dem Inhalt dieses Artikels befassen, müssen wir sicherstellen, dass die folgenden Voraussetzungen erfüllt sind:
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:
Die meisten Entwickler definieren den Benachrichtigungstyp normalerweise als Modellmethode innerhalb der Anwendung, sodass die Methode aufgerufen wird, wenn eine Benachrichtigung gesendet werden muss.
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
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
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 [ // ]; } }
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'] ]); }
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]));
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.
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
Definieren Sie den Kontext im Modell:
class User extends Authenticatable { public function routeNotificationForMail() { return $this->email; } }
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');
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]); } }
Dadurch wird eine Benachrichtigung an den Benutzer gesendet. Die Benachrichtigung sollte einen Titel und einen Text enthalten.
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!