【问题标题】:Sending variables inside the function in laravel在laravel中的函数内部发送变量
【发布时间】:2015-03-18 11:49:18
【问题描述】:

是否可以获取存储在函数(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);访问

【问题讨论】:

    标签: php email laravel laravel-4 function-parameter


    【解决方案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_body = str_replace("{password}", $string, $mail_body);

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

    【讨论】:

    • 谢谢,如果我需要使用 $string1, $string2 那么我应该这样做 array('foo' => $string, 'foo1' => $string1, 'foo2' => $string2), function($message) use ($string,$string1, $string2 ) 喜欢这个吗?
    • (假设您使用刀片作为电子邮件视图)您在数组中传递的内容可以在email.blade.php 中作为{{ $foo }} {{ $foo1}} 访问
    • use ($string,$string1, $string2 ) 只有当你想在你的函数Mail::send(.... function () { $string,$string1, $string2 }) 访问这些变量时才需要
    猜你喜欢
    • 2015-06-16
    • 1970-01-01
    • 2021-11-13
    • 2022-11-27
    • 2016-12-02
    • 2017-02-02
    • 2017-08-19
    • 2022-09-23
    • 1970-01-01
    相关资源
    最近更新 更多