Laravel 发送电子邮件时出现 htmlspecialchars() 错误

Laravel htmlspecialchars() error when sending email

我正在尝试通过 Laravel 中的 Sendgrid 发送电子邮件。我一直在关注 Sendgrid's Knowledge Base Article on Sending Email with Laravel

我在我的 .env 文件中设置了所有内容(尽管我还必须更新 ~/config/mail.php 中的 MAIL_HOST)并且我能够发送一封测试电子邮件(我我正在 blade).

电子邮件模板本身的 blade 与 SendGrid 的文档完全相同:

<!DOCTYPE html>
<html lang="en-US">
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <h2>Test Email</h2>
        <p>{{$message}}</p>
    </body>
</html>

我 运行 在一个单独的 blade 中的代码(我这样做只是为了测试)是:

@php

use App\Mail\TestEmail;

$data = ['message' => 'Oh, hai!'];

Mail::to('john@doe.com')->send(new TestEmail($data));

@endphp

通过以上我得到以下错误:

htmlspecialchars() expects parameter 1 to be string, object given 
    (View: ~/resources/views/emails/test.blade.php)

当我在 blade 中不使用 {{ message }} 时,一切都很好。

有人可以告诉我发生了什么事以及如何解决吗?这是我第一次使用 Laravel,任何能为我指明正确方向的东西都可以。

$message 是自 Laravel 5.6 以来的保留变量,表示 Illuminate\Mail\Message 对象。

在您的 Blade 模板和 PHP 代码中将 $message 替换为 $content$msg 之类的内容,一切都会正常进行!