Как передать переменные анонимным функциям? - PullRequest
0 голосов
/ 16 ноября 2018

С какой стати Ларавел говорит, что электронная почта не является определенной переменной ???

$title = 'hi';
$content = 'hi';
$email='topher@site.com';

Mail::send('confirmation', ['title' => $title, 'content' => $content], function ($message) {
 $message->from('john@site.com', 'Topher');
 $message->to($email);
});

Ответы [ 3 ]

0 голосов
/ 16 ноября 2018

Поскольку вы обращаетесь к переменной $email в другой области действия функции.

Вместо

Mail::send('confirmation', ['title' => $title, 'content' => $content], function ($message) {

Добавьте ключевое слово use, чтобы включить переменную $email в функцию замыкания.сфера.

Mail::send('confirmation', ['title' => $title, 'content' => $content], function ($message) use($email) {
0 голосов
/ 16 ноября 2018

Это выходит за рамки вашей функции.Попробуйте это:

$title = 'hi';
$content = 'hi';

Mail::send('confirmation', ['title' => $title, 'content' => $content], function ($message) {
    $email='topher@site.com';
    $message->from('john@site.com', 'Topher');
    $message->to($email);
});
0 голосов
/ 16 ноября 2018

Вы используете его в функции, и это другая область. Добавьте use($email) после аргументов вашей функции.

function($message) use($email)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...