【问题标题】:Value undefined值未定义
【发布时间】:2015-02-22 02:02:33
【问题描述】:

在我的 laravel 项目中,我正在尝试使用以下代码发送电子邮件:

    $mailTo = "theemail@hotmail.com";
    $mailToName = "hisname";

    Mail::send('emails.message.showmessage', array( 'name' => $mailToName), function($message)
    {
        $message->to($mailTo, $mailToName)->subject('New message');
    });

但我得到了错误:

Undefined variable: mailTo

这怎么可能?我明确用未定义的变量设置了变量:mailTo,它是在邮件函数中取消设置的吗?

【问题讨论】:

    标签: email laravel laravel-4


    【解决方案1】:

    要在闭包(又名匿名函数)中使用局部变量,您需要使用use()

    Mail::send('emails.message.showmessage', array( 'name' => $mailToName), function($message) use ($mailTo, $mailToName)
    {
        $message->to($mailTo, $mailToName)->subject('New message');
    });
    

    use 中指定的所有变量都将在闭包内可用,而其他变量则不可用。

    【讨论】:

    • 谢谢,我想是因为它是在可用的功能范围之外定义的。
    猜你喜欢
    • 2016-10-23
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 2017-09-12
    • 1970-01-01
    相关资源
    最近更新 更多