2017-06-21 6 views
1

Ich versuche eine einfache E-Mail mit Laravel zu senden. Ich habe kein Problem, eine normale HTML-E-Mail zu senden, aber wenn ich versuche, die Abschlags-Funktion zu verwenden, ichLaravel 5.4 - Undefinierte Variable: Markdown

Undefined variable: markdown

ich den Fehler erhalten keine Instanz eines Modell per E-Mail im Augenblick verwenden, ich bin gerade versuchen, zuerst eine einfache Abschriften-E-Mail zu erhalten. Hier habe ich alles eingerichtet.

Mail-Controller-

namespace App\Mail; 

use Illuminate\Bus\Queueable; 
use Illuminate\Mail\Mailable; 
use Illuminate\Queue\SerializesModels; 
use Illuminate\Contracts\Queue\ShouldQueue; 

class ProjectSubmitted extends Mailable 
{ 
    use Queueable, SerializesModels; 

    /** 
    * Create a new message instance. 
    * 
    * @return void 
    */ 
    public function __construct() 
    { 
     // 
    } 

    /** 
    * Build the message. 
    * 
    * @return $this 
    */ 
    public function build() 
    { 
     return $this->markdown('emails.project-submitted'); 
    } 
} 

Blade-Vorlage

@component('mail::message') 
*Lorem Ipsum Dolor 

@component('mail::button', ['url' => 'http://google.com']) 
Lorem Ipsum Dolor 
@endcomponent 

Thanks,<br> 
Lorem Ipsum 
@endcomponent 

Das ist alles, was ich jetzt haben, sehr einfach. Wenn ich versuche, diese E-Mail

\Mail::to('[email protected]le.com')->send(new \App\Mail\ProjectSubmitted);

zu senden behalte ich den Fehler immer Undefined variable: markdown. Kann dazu nichts finden. Jede Hilfe wäre toll.

+0

aber wo definiert öffentliche $ Markdown? –

+0

Haben Sie für artisan die Verwendung von markdown 'php artisan make: mail ProjectSubmitted --markdown = emails.project-submitted 'konfiguriert, müssen Sie auch keine Email angeben? https://laravel.com/docs/5.4/mail#markdown-mailables – effy

+0

@effy ja Ich machte den Controller mit diesem Handwerker Befehl. –

Antwort

4

Dies ist ein Problem bereits gemeldet here und vor kurzem gepatcht here.

Ein temporärer Fix kann durch Bearbeiten der Datei Mailable.php im Stammverzeichnis Ihres Projekts (/vendor/laravel/framework/src/Illuminate/Mail/Mailable.php) angewendet werden.

Die Leitung 195 zu 'text' => $this->buildMarkdownText($markdown, $data) und die Leitung 222 zu protected function buildMarkdownText($markdown, $data) ändern.

+0

Dies ist 100% die richtige Lösung, wenn jemand auf dieses Problem stößt. Nochmals vielen Dank @Effy. –

+0

@ TaylorFoster Bitte klären Sie, müssen Sie warten, bis der Patch angewendet wird oder können Sie Mailable.php manuell ändern, um dies zu beheben? Wenn ja, kann ich auch die Code-Snippets für das Update posten, so dass jemand anderes, der darüber stolpert, den Links nicht folgen muss ... – effy

+0

Ich bin einfach in die Datei gegangen und habe sie selbst bearbeitet. –