Ich habe gerade meine 5.2
Installation von Laravel auf 5.3
und dann auf 5.4
nach den offiziellen Upgrade-Methoden aktualisiert.Laravel 5.4 Bild in Mail einbetten
Ich versuche jetzt, eine der neuen Funktionen zu verwenden, um eine formatierte E-Mail zu erstellen.
Nach der Dokumentation unter: https://laravel.com/docs/5.4/mail#view-data
To embed an inline image, use the embed method on the
$message
variable within your email template. Laravel automatically makes the$message
variable available to all of your email templates, so you don't need to worry about passing it in manually:
Dies ist jedoch:
<img src="{{ $message->embed(public_path().'/img/official_logo.png') }}">
den folgenden Fehler erzeugen:
Undefined variable:
message
Bin ich etwas fehlt? Oder gibt es etwas Undokumentiertes in den Upgrade-Guides?
Später bearbeiten:
Ich rufe die E-Mail-Funktion mit:
\Mail::to($user)->send(new WelcomeCandidate($user, $request->input('password')));
Und WelcomeCandidate wie folgt aussieht:
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use App\Models\User;
class WelcomeCandidate extends Mailable
{
use Queueable, SerializesModels;
public $user;
public $password;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct(User $user, $password)
{
//
$this->user = $user;
$this->password = $password;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
$this->subject('Welcome!');
return $this->markdown('emails.welcome-candidate');
}
}
verwenden zeigen etwas mehr Code, aber was der Fehler sagt, ist ziemlich klar. Sie haben die Nachrichtenvariable für Ihre sendbare Klasse oder Ihre Benachrichtigungsklasse nicht definiert oder Sie haben ihr im Konstruktor Ihrer E-Mail/Benachrichtigung keinen Wert zugewiesen. Auch wenn Sie Markdown verwenden, benötigen Sie das Image-Tag nicht. – Christophvh
Ich habe es nach Anweisungen gemacht, wie Sie im zitierten Text sehen können. Welchen Code soll ich bereitstellen? –
der Code, in dem Sie Ihre E-Mail-Klasse erreichen: also zum Beispiel: '$ message =" Hallo "; Mail :: to ($ request-> user()) -> send (new OrderShip ($ message)); ' – Christophvh