2017-06-21 99 views
1

我正在嘗試向Laravel發送一封簡單的電子郵件。我沒有問題,發送一個普通的HTML電子郵件,但是當我嘗試使用降價功能,我不斷收到Laravel 5.4 - 未定義的變量:markdown

Undefined variable: markdown

我不使用我的電子郵件中的模型的任何實例,現在的錯誤,我只是試圖首先獲得簡單的減價電子郵件。這是我如何設置一切。

郵件控制器

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'); 
    } 
} 

刀片模板

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

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

Thanks,<br> 
Lorem Ipsum 
@endcomponent 

這就是我現在所擁有的,非常基本的。當我嘗試發送這封電子郵件

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

我不斷收到錯誤Undefined variable: markdown。在這找不到任何東西。任何幫助將是驚人的。

+0

但定義的公共$ markdown? –

+0

你有沒有配置工匠使用降價'PHP工匠製作:郵件ProjectSubmitted --markdown = emails.project-submitted',也不需要從電子郵件指定? https://laravel.com/docs/5.4/mail#markdown-mailables – effy

+0

@effy是的,我提出使用人員命令控制器。 –

回答

4

這是一個問題,已經報告here和最近here修補。

可以通過編輯項目根目錄下的Mailable.php文件(/vendor/laravel/framework/src/Illuminate/Mail/Mailable.php)來應用臨時修訂。

更改線路195 'text' => $this->buildMarkdownText($markdown, $data),和線路222 protected function buildMarkdownText($markdown, $data)

+0

如果有人遇到此問題,這是100%正確的修復方法。再次感謝@effy。 –

+0

@TaylorFoster請說明一下,您是否需要等待修補程序的應用,或者您是否可以手動修改Mailable.php來修復此問題?如果是的話,我也可以發佈修補程序的代碼片段,以便其他人在這個問題上磕磕絆絆,不需要遵循鏈接... – effy

+0

我剛進入文件並自己編輯它。 –