我正在尝试使用 laravel 发送电子邮件。这适用于多个功能,但使用这个功能我遇到了一个奇怪的错误。
这是我正在使用的代码
$offerte = DB::table('offertes')
->select('*')
->where('id', '=', $offerte_id)
->get();
Mail::send('emails.offerte_reactie', ['offerte' => $offerte, 'user' => $user, 'message_text' => $message_text], function ($message) use ($user)
{
$message->from($user->email, 'Foodtruckbestellen.be');
$message->to($offerte->email);
$message->subject('Reactie offerte Foodtruckbestellen.be');
});
Run Code Online (Sandbox Code Playgroud)
但是,当我想发送邮件时,出现错误
未定义变量:offerte
行$message->to($offerte->email); 在 PHPSTORM 中确实用红色下划线表示,我没有在电子邮件中使用该变量。所以我确定这就是我的错误所在,我只是找不到解决方法。
您需要将$offerte变量传递给闭包,因为它没有在闭包范围内定义。
只需使用$offerte变量作为你与做$user。
Mail::send('emails.offerte_reactie', ['offerte' => $offerte, 'user' => $user, 'message_text' => $message_text], function ($message) use ($user, $offerte)
{
$message->from($user->email, 'Foodtruckbestellen.be');
$message->to($offerte->email);
$message->subject('Reactie offerte Foodtruckbestellen.be');
});
Run Code Online (Sandbox Code Playgroud)
此外,如果我是你,我会使用compact你传递给 send 函数的第二个参数的数组来编写更干净的代码。
Mail::send('emails.offerte_reactie', compact('offerte', 'user', 'message_text'), function ($message) use ($user, $offerte)
{
$message->from($user->email, 'Foodtruckbestellen.be');
$message->to($offerte->email);
$message->subject('Reactie offerte Foodtruckbestellen.be');
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8209 次 |
| 最近记录: |