Stellen Sie sich ein Szenario vor, in dem Sie mehrere Aktionen zu Ihrer Laravel-Benachrichtigung hinzufügen müssen, wobei Sie so viele Schaltflächenkomponenten mit unterschiedlichen URLs hinzufügen können. Wir gehen von der Einrichtung einer einfachen E-Mail-Benachrichtigung bis hin zu einer stärker strukturierten, komponentenbasierten Markdown-Benachrichtigung durch.
Einfache E-Mail-Benachrichtigung
Erstellen Sie eine einfache Benachrichtigung, indem Sie den folgenden Befehl ausführen.
php artisan make:notification SendTestEmail
In Ihrem app\Notifications\SendTestEmail
, lassen Sie uns eine einfache E-Mail-Benachrichtigung entwerfen.
public function toMail( $notifiable ) {
return ( new MailMessage )
->subject('Notification Subject');
->line('Some Text here');
->action('some action button',url('actionurl')
->line('some more text')
->action('some other action button',url('anotheractionurl'));
}
Wenn Sie es ausprobieren, werden Sie feststellen, dass nur eine einzige Aktionsschaltfläche in Ihrer E-Mail angezeigt wird. Aber warum ist das so? Sie haben hier mehrere Aktionen verwendet. Nun, dafür gibt es eine einfache Lösung. Wir werden den Ansatz der Markdown-Mail-Benachrichtigungen verwenden, der uns mehr Freiheit beim Schreiben längerer, individueller Nachrichten gibt.
Markdown-Mail-Benachrichtigung
Lassen Sie uns eine weitere Meldung erstellen, diesmal aber mit einem Markdown.
php artisan make:notification SendAnotherTestEmail --markdown=mails.test
Nun, in unserem app\Notifications\SendAnotherTestEmail
, werden wir so etwas tun wie:
public function toMail( $notifiable ) {
$url = 'someurl.com';
$another_url = 'someotherurl.com';
return ( new MailMessage )
->markdown( 'mails.test', [
'url' => $url,
'another_url' => $another_url
] );
}
Hier haben wir eine Reihe von Variablen an unsere Markdown-Vorlage übergeben.
Und in unserer Markdown-Datei werden wir unsere E-Mail entwerfen.
@component('mail::message')
# Test Markdown Email
Some Text here
@component('mail::button', ['url' => $url])
Some Button
@endcomponent
Some other Text here
@component('mail::button', ['url' => $another_url])
Some other Button
@endcomponent
Thanks,<br>
{{ config('app.name') }} Administrator
@endcomponent
Probieren Sie diesen Ansatz aus und Sie werden mehr Kontrolle über Ihre E-Mail-Benachrichtigungen haben. Beachten Sie auch, dass Markierungen keine Einrückungen haben können. Seien Sie also vorsichtig beim Schreiben von Markierungen, sonst wird in Ihrer E-Mail rohes HTML angezeigt.