我刚刚将laravel的5.2
安装升级到5.3
,然后按照官方升级方法升级到5.4
。laravel 5.4在邮件中嵌入图片
我现在正尝试使用其中一项新功能来创建降价格式电子邮件。
根据文档中发现的:https://laravel.com/docs/5.4/mail#view-data
To embed an inline image, use the embed method on the
$message
variable within your email template. Laravel automatically makes the$message
variable available to all of your email templates, so you don't need to worry about passing it in manually:
然而,这样的:
<img src="{{ $message->embed(public_path().'/img/official_logo.png') }}">
将产生以下错误:
Undefined variable:
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');
}
}
表现出一些更多的代码,但什么错误是说是相当清楚的。您没有在您的邮寄类或通知类中定义邮件变量,也没有在邮件/通知的构造函数中为其分配任何值。另外,如果你要使用降价,你不需要图像标签。 – Christophvh
我按照说明操作,如引用文本中所示。我应该提供哪些代码? –
你在哪里执行你的mailable类的代码:例如: '$ message =“hello”; Mail :: to($ request-> user()) - > send(new OrderShipped($ message));' – Christophvh