Sprache:

Suche

Mehrere Aktionen in Ihren Laravel Mailables

  • Teilen:
Mehrere Aktionen in Ihren Laravel Mailables

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.

Tags:
Usama Muneer

Usama Muneer

A web enthusiastic, self-motivated & detail-oriented professional Full-Stack Web Developer from Karachi, Pakistan with experience in developing applications using JavaScript, WordPress & Laravel specifically. Loves to write on different web technologies with an equally useful skill to make some sense out of it.