我正在尝试用laravel发送邮件。不确定我是否正确地做了但我将所有内容都基于教程,并尽量保持简单。 我究竟做错了什么?它目前给我一个错误:"传递给Illuminate \ Mail \ Mailer :: send()的参数2必须是数组类型,字符串" 如果我留下一个空的$ data,它表示未定义。我不知道怎么做所有这些事情。有什么帮助吗?
$data = "helloooo";
Mail::send('emails.welcome', $data, function($message) {
$message->to('thatsmymail123@gmail.com', 'me')->subject('Welcome!'); });
答案 0 :(得分:7)
线索出现在您的错误中。 “传递给Illuminate\Mail\Mailer::send()
的参数2必须是类型数组,字符串给出”
您需要传递给Mail::send()
函数的数组与呈现视图的通常方式完全相同。
例如,您可以执行此操作来渲染视图。
$data['foo'] = 'bar';
return View::make('my.view', $data);
在您的视图中,您可以使用$foo
变量。这同样适用于发送电子邮件。 Laravel仍然需要呈现您的电子邮件视图。解决上面的问题...
$data = ['foo' => 'bar'];
Mail::send('emails.welcome', $data, function($message)
{
$message->to('email@example.com', 'Jon Doe')->subject('Welcome!');
});
如果您没有/需要将任何数据传递给您的视图,只需使用一个空数组。
$data = []; // Empty array
Mail::send('emails.welcome', $data, function($message)
{
$message->to('email@example.com', 'Jon Doe')->subject('Welcome!');
});
答案 1 :(得分:0)
$ data =" helloooo&#34 ;; 而是使用$ data使它成为数组。像这样 $ data [' message'] =" helloooo";
由于传递给Illuminate \ Mail \ Mailer :: send()的参数必须是数组类型,所以我们以数组格式传递它。
并在电子邮件视图中:emails.welcome 使用$ message显示变量值。