道歉,如果我在这里遗漏了一些东西,因为我是Laravel的新手,但是当我向Mail :: send()方法发送一个闭包以定义邮件收件人时,如果电子邮件地址可用,则可以正常工作范围,像这样:
Mail::send('frontend.emails.default', $data, function($message)
{
$message->to(Input::get('email'))->subject('Hi');
});
但是如何将作用域中的值传递给调用方法?例如:
$user = User::find($id);
Mail::send('frontend.emails.default', $data, function($message)
{
$message->to($user->email)->subject('Hi');
});
我尝试将它添加到$ data数组中,但是在视图中使用它并且在回调中不可用。
感谢您的帮助。
答案 0 :(得分:46)
PHP中有一些文档记录的功能允许您将变量从当前作用域传递到闭包中。简而言之,您需要use ($user)
...
$user = User::find($id);
Mail::send('frontend.emails.default', $data, function($message) use ($user)
{
$message->to($user->email)->subject('Hi');
});