我使用Laravel类邮件向客户发送电子邮件:
$item = DB::table('questions')->find($id);
var_dump($item->email);
// send mail to customer
Mail::queue('emails.email', $data, function($message) {
$message->to($item->email)->subject('Odpoveď od SCSPPIMKA');
$message->sender('mailer@scspimka.sk');
});
当我在 $message->to('example@email.com')
中硬编码电子邮件地址时,一切正常,但是当我在变量中使用电子邮件地址时:$message->to($item->email)
出现错误:
Undefined variable: item' in /data/www/scsppimka.local/laravel/vendor/jeremeamia/SuperClosure/src/Jeremeamia/SuperClosure/SerializableClosure.php(99) : eval()'d code:2
$item->电子邮件的 vardump 显示具有正确电子邮件地址的字符串。什么会导致此问题?
您需要使用 use
将变量从当前上下文获取到匿名函数的上下文$item
:
Mail::queue('emails.email', $data, function($message) use ($item) {
$message->to($item->email)->subject('Odpoveď od SCSPPIMKA');
$message->sender('mailer@scspimka.sk');
});