OctoberCMS - Mail :: send(),未定义的变量 - Laravel

时间:2017-06-20 15:37:16

标签: php laravel laravel-5 octobercms

我正在尝试将 SAME 电子邮件发送到数组$emails提供的多个地址。

我创建了一个名为SendMail的类,而inside是一个sendPost()方法,它接受2个参数: ($post, $emails)

这是我的代码:

class SendMail {

public static function sendPost($post, $emails)
{
        Mail::send('acme.blog::mail.message', $post, function($message) {

            $message->to($emails);
            $message->from('mail@compuflexcorp.com', 'Compuflex Mail');
            $message->subject($post['subject']);
            $message->replyTo($post['email']);

        });
    }
}

问题是,我一直收到错误:

  

"未定义的变量$ emails"在C的第14行:\ ... \ SendMail.php

第14行: $message->to($emails);

我尝试过:

  1. 我查看是否可以访问$post内<{1}}内的$emailssendPost()变量,但Mail::send()之外。答案是 ,我可以访问$post$emailssendPost()内的信息,因此变量是实际上,传递给sendPost()方法。

  2. 我一开始认为这与$emails不是Mail::send()的论据之一有关,所以我把$post和{{$emails放在一起1}}成一个名为$vars的数组,但后来我收到了错误:

  3.   

    &#34;未定义的变量$ vars&#34;在C的第14行:\ ... \ SendMail.php

    所以,我意识到问题似乎是我无法将任何变量传递给Mail::send(),换句话说,我只是不知道如何...

    任何帮助将不胜感激...... Thomas Yamakaitis

1 个答案:

答案 0 :(得分:4)

您需要传递$ emails变量,如下所示:

class SendMail {

public static function sendPost($post, $emails)
{
        Mail::send('acme.blog::mail.message', $post, function($message) use ($emails) {

            $message->to($emails);
            $message->from('mail@compuflexcorp.com', 'Compuflex Mail');
            $message->subject($post['subject']);
            $message->replyTo($post['email']);

        });
    }
}