Laravel/PHP错误:未定义变量:email2

Laravel/PHP错误:未定义变量:email2,php,laravel,email,variables,Php,Laravel,Email,Variables,我试图发送一封电子邮件,当我想写入目的地的电子邮件地址(电子邮件是函数的一个参数)时,我出现了这个错误。有人能帮我吗 这是我的职责: public function email($name, $email2) { $data = array('name'=> $name); Mail::send('mail',$data,function($message) { $message->to($email2, $name)->subject('Deposit Con

我试图发送一封电子邮件,当我想写入目的地的电子邮件地址(电子邮件是函数的一个参数)时,我出现了这个错误。有人能帮我吗

这是我的职责:

public function email($name, $email2) {
  $data = array('name'=> $name);
  Mail::send('mail',$data,function($message) {
    $message->to($email2, $name)->subject('Deposit Confirmation');
    $message->attach(public_path('document.pdf'));
    $message->from('xxx@xxx.pt', 'XXX');
  });
}
这是我的错误:“未定义变量email2”


谢谢

当您使用匿名函数传递变量时,您应该使用
使用
构造

public function email($name, $email2) {
      $data = array('name'=> $name);
      Mail::send('mail',$data,function($message) use ($name, $email2) {
        $message->to($email2, $name)->subject('Deposit Confirmation');
        $message->attach(public_path('document.pdf'));
        $message->from('xxx@xxx.pt', 'XXX');
      });
    }
在这里,您可以找到更多关于匿名函数的示例

这里是官方文档中的一个简单示例

$message = "hello";

// Inherit $message
$example = function () use ($message) {
    var_dump($message);
};

$example();

// Output: string(5) "hello"

它发生在哪一行代码中?