2017-06-21 24 views
1

私はLaravelで簡単なメールを送信しようとしています。私はマークダウン機能を使用しようとすると、私は今の私の電子メールでのモデルの任意のインスタンスを使用していないLaravel 5.4 - 未定義の変数:markdown

Undefined variable: markdown

エラーを得続ける通常のHTML形式のメールを送信して何の問題もないが、私はちょうど午前最初にマークダウンの簡単な電子メールを取得しようとしています。ここに私はすべてをセットアップしている方法です。

私が今持っているすべてであるメールのコントローラー

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

ただし、public $ markdown? –

+0

マークダウン 'php artisan make:mail 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

私はファイルに入り、自分で編集しました。 –

関連する問題