是否可以获取存储在函数$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);
答案 0 :(得分:2)
您对静态方法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_body = str_replace(" {password}", $ string,$ mail_body);
你有一个范围问题 - 为了获得传递$ string,你需要在函数调用之前使用use ($string)
。
正如我在更新的代码中所示。