2014-12-23 2 views
2

С моей Laravel проекта Я пытаюсь отправить по электронной почте с помощью следующего кода:Значение не определено

$mailTo = "[email protected]"; 
    $mailToName = "hisname"; 

    Mail::send('emails.message.showmessage', array('name' => $mailToName), function($message) 
    { 
     $message->to($mailTo, $mailToName)->subject('New message'); 
    }); 

Но я получаю ошибку:

Undefined variable: mailTo 

Как это возможно? Я четко установил переменную с неопределенной переменной: mailTo, она не установлена ​​в функции Mail?

ответ

2

Чтобы использовать локальную переменную внутри закрытия (он же анонимным функции) вам нужно использовать use()

Mail::send('emails.message.showmessage', array('name' => $mailToName), function($message) use ($mailTo, $mailToName) 
{ 
    $message->to($mailTo, $mailToName)->subject('New message'); 
}); 

Все переменные, указанные в use будут доступны внутри закрытия всех других не будет.

+0

Спасибо, никогда не возглавлял его, я думал, потому что он был определен вне сферы действия функции, которая была бы доступна. –

Смежные вопросы