定义Mail :: send()方法的电子邮件地址

时间:2013-05-29 08:43:51

标签: laravel laravel-4

道歉,如果我在这里遗漏了一些东西,因为我是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数组中,但是在视图中使用它并且在回调中不可用。

感谢您的帮助。

1 个答案:

答案 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');
});