Отправка переменных внутри функции в laravel

Можно ли получить значение $string который хранится вне функции (For Mail)

Здесь я попробовал.

$string = str_random(5);

Mail::send([], [], function($message,$string)
{
$user = MailTemplate::find(1);
$mail_body = $user->MailContent;
$mail_body = str_replace("{password}", $string, $mail_body);
$message->setBody($mail_body, 'text/html');
$message->to(Session::get('sess_mail'));
$message->subject('Password Details - Ma$na Taxi');
});

Но это показывает ошибку

Missing argument 2 for LoginController::{closure}()

Как я могу передать значение $ string внутри функции почты, как

Mail::send([], [], function($message,$string)

Так что это должно быть доступно на $mail_body = str_replace("{password}", $string, $mail_body);

1

Решение

Ваш вызов статического метода Mail::send() должен соответствовать подписи, указанной здесь — http://laravel.com/docs/4.2/mail#basic-usage

$string = str_random(5);

Mail::send('name-of-view-used-for-email',
array('foo' => $string), function($message) use ($string)
{
$user = MailTemplate::find(1);
$mail_body = $user->MailContent;
$mail_body = str_replace("{password}", $string, $mail_body);
$message->setBody($mail_body, 'text/html');
$message->to(Session::get('sess_mail'));
$message->subject('Password Details - Ma$na Taxi');
});

Как я могу передать значение $ string внутри функции mail следующим образом
он должен быть доступен по адресу $ mail_body = str_replace («{пароль}»,
$ string, $ mail_body);

У вас есть проблема с областью видимости — чтобы получить pass $ string, вам нужно использовать use ($string) до вызова вашей функции.
Как я показал в обновленном коде.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]