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

Rus*_*ack 8 laravel laravel-4

抱歉,如果我在这里遗漏了一些东西,因为我是Laravel的新手,但是当我向Mail :: send()方法发送一个闭包以定义邮件收件人时,如果电子邮件地址可用于全局范围,则可以正常工作,例如这个:

Mail::send('frontend.emails.default', $data, function($message) 
{
    $message->to(Input::get('email'))->subject('Hi');
});
Run Code Online (Sandbox Code Playgroud)

但是,如何将作用域中的值传递给调用方法?例如:

$user = User::find($id);

Mail::send('frontend.emails.default', $data, function($message) 
{
    $message->to($user->email)->subject('Hi');
});
Run Code Online (Sandbox Code Playgroud)

我尝试将它添加到$ data数组,但是在视图中使用它并且在回调中不可用.

谢谢你的帮助.

Phi*_*rks 46

PHP中有一些记录的功能允许您将变量从当前作用域传递到闭包中.总之,你需要use ($user)......

$user = User::find($id);

Mail::send('frontend.emails.default', $data, function($message) use ($user)
{
    $message->to($user->email)->subject('Hi');
});
Run Code Online (Sandbox Code Playgroud)