在 laravel 中的函数内发送变量

Sending variables inside the function in laravel

是否可以获取存储在函数(For Mail)之外的$string的值

这里我试过了。

$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');
    });

How can i pass the value of $string inside the mail function like so it should be accessible at $mail_body = str_replace("{password}", $string, $mail_body);

你有一个范围问题 - 为了通过 $string 你需要在你的函数调用之前使用 use ($string)
正如我在更新的代码中所示。