2017-06-21 169 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

我刚进入文件并自己编辑它。 –