我有这个代码用于从Laravel发送邮件。这段代码运行良好。
Mail::send('emails.auth.accept', array(), function($message) {
$message->to('abc@gmail.com', 'abc')->subject('This is a demo!');
});
但我只能使用硬编码值发送邮件,例如abc@gmail.com。
每当我尝试这个。
Mail::send('emails.auth.accept', array(), function($message) {
$message->to($user, $name)->subject('This is a demo!');
});
上面的代码给出了错误:未定义的变量:user。这意味着它不接受动态值。 帮助我。
答案 0 :(得分:4)
你应该使用
//see use statement
Mail::send('emails.auth.accept', array(), function($message) use($user, $anything) {
$message->to('abc@gmail.com', 'abc')->subject('This is a demo!');
});
您的代码存在的问题是匿名函数有自己的上下文,您的数据不可用。这就是为什么你需要使用use
语句将数据从方法的上下文传递给匿名函数。
有关详细信息,请查看此链接http://php.net/manual/en/functions.anonymous.php
答案 1 :(得分:0)
你想用。这是一个提供示例的链接。