我使用Laravel class Mail向客户发送电子邮件:
$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显示具有正确电子邮件地址的字符串。什么可能导致这个问题?
答案 0 :(得分:2)
您需要使用use
从当前上下文中将$item
变量带到匿名函数的上下文中:
Mail::queue('emails.email', $data, function($message) use ($item) {
$message->to($item->email)->subject('Odpoveď od SCSPPIMKA');
$message->sender('mailer@scspimka.sk');
});