Laravel 7上Mailtrap的值null问题的偏移

问题描述

我正在使用Laravel 7和PHP 7.4。

我正在使用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;
    }
}

它现在有望运行。