Можно ли получить значение $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);
Ваш вызов статического метода 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)
до вызова вашей функции.
Как я показал в обновленном коде.
Других решений пока нет …