【问题标题】:Why undefined variable: email in send email laravel 5.3?为什么未定义变量:发送电子邮件 laravel 5.3 中的电子邮件?
【发布时间】:2017-01-12 14:49:14
【问题描述】:

我的代码是这样的:

public function handle(UserRegisteredEvent $event)
    {
        $data = $event->data;
        $name = $data['name'];
        $email = $data['email']; //tri@gmail.com

        Mail::send('emails.welcome', ['name' => $name], function($m){
            $m->to($email)
              ->subject('Transaction Details');
        });
    }

执行时出现如下错误:

Undefined variable: email

【问题讨论】:

    标签: php laravel laravel-5.3


    【解决方案1】:

    $email 变量在邮件闭包函数中无法识别,您必须使用 use 关键字将其显式传递给闭包函数,如下所示:

    public function handle(UserRegisteredEvent $event)
    {
        $data = $event->data;
        $name = $data['name'];
        $email = $data['email']; //tri@gmail.com
    
        Mail::send('emails.welcome', ['name' => $name], function($m) use ($email) {
            $m->to($email)
              ->subject('Transaction Details');
        });
    }
    

    【讨论】:

      【解决方案2】:

      在使用函数闭包时,您需要使用use 来使用内部变量。

      试试这个:

      Mail::send('emails.welcome', ['name' => $name], function($m) use ($email) {
                  $m->to($email)
                    ->subject('Transaction Details');
              });
      

      【讨论】:

        猜你喜欢
        • 2016-10-24
        • 1970-01-01
        • 2020-06-02
        • 2017-08-25
        • 2021-01-05
        • 2022-08-13
        • 2017-04-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多