问题描述
我正在使用Mailtrap来测试电子邮件。我刚刚将Laravel版本升级到7.4,我的电子邮件已停止工作。当我尝试发送演示电子邮件时,它在下面给我一个错误
sep = "\\|"
问题在这里:
Trying to access array offset on value of type null
控制器:
{{ $mailData['title'] }}
MailFile:
class MailController extends Controller {
public function sendEmail() {
$email = '[email protected]';
$mailData = [
'title' => 'Demo Email','url' => 'https://www.positronx.io'
];
Mail::to($email)->send(new EmailDemo($mailData));
return response()->json([
'message' => 'Email has been sent.'
],Response::HTTP_OK);
}
}
刀片:
class EmailDemo extends Mailable
{
use Queueable,SerializesModels;
public $mailData;
public function __construct()
{ }
public function build()
{
return $this->markdown('email.demoEmail')
->with('mailData',$this->mailData);
}
}
解决方法
您忘记在constructor()
中设置$ mailData,将其传递给构造函数并将其设置为$this->maildata
。
class EmailDemo extends Mailable
{
use Queueable,SerializesModels;
public $mailData;
public function __construct($mailData)
{
$this->mailData = $mailData;
}
}
,
您尚未在邮件通知类中初始化$mailData
。您可以按照以下步骤进行操作:
class EmailDemo extends Mailable
{
//your other code
public $mailData;
public function __construct($mailData)
{
$this->mailData = $mailData;
}
}
它现在有望运行。