2017-01-12 15 views
0

私のコードは次のようである:なぜ未定義の変数か:電子メールを送る電子メールlaravel 5.3?

public function handle(UserRegisteredEvent $event) 
    { 
     $data = $event->data; 
     $name = $data['name']; 
     $email = $data['email']; //[email protected] 

     Mail::send('emails.welcome', ['name' => $name], function($m){ 
      $m->to($email) 
       ->subject('Transaction Details'); 
     }); 
    } 

実行すると、このようなエラーが存在する:変数は、メール閉鎖関数内で認識されていません

Undefined variable: email 

答えて

2

$email、あなたが明示的に閉鎖にそれを渡す必要がありますこのようなuseキーワードを使用する関数:

public function handle(UserRegisteredEvent $event) 
{ 
    $data = $event->data; 
    $name = $data['name']; 
    $email = $data['email']; //[email protected] 

    Mail::send('emails.welcome', ['name' => $name], function($m) use ($email) { 
     $m->to($email) 
      ->subject('Transaction Details'); 
    }); 
} 
1

関数クロージャを使用している間内部で変数を使用するにはuseを使用します。

これを試してみてください:

Mail::send('emails.welcome', ['name' => $name], function($m) use ($email) { 
      $m->to($email) 
       ->subject('Transaction Details'); 
     }); 
関連する問題