我刚刚将我的 laravel 安装程序从 5.2
升级到 5.3
,然后再按照官方升级方法升级到 5.4
。
现在,我正在尝试使用其中一个新功能,即创建一个 markdown 格式的电子邮件。
根据在https://laravel.com/docs/5.4/mail#view-data找到的文档:
要嵌入内联图片,请在电子邮件模板中的
$message
变量上使用 embed 方法。Laravel 会自动使$message
变量对所有电子邮件模板可用,因此你不必担心手动传递它:
不过,这个:
<img src="{{ $message->embed(public_path().'/img/official_logo.png') }}">
将会产生以下错误:
未定义变量:
message
我是不是漏掉了什么?或者在升级指南中有一些未记录的内容?
后续编辑:
我正在使用以下代码调用邮件函数:
\Mail::to($user)->send(new WelcomeCandidate($user, $request->input('password')));
而WelcomeCandidate看起来像这样:
<?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');
}
}
$message = "你好"; Mail::to($request->user())->send(new OrderShipped($message));
- Christophvh