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.

Ihre Erfahrung auf dieser Website wird verbessert, wenn Sie Cookies zulassen. Cookie Policy