laravel:无法将参数传递给特征

laravel : Not able to pass parameters to trait

我在MailTrait.php中创建了一个trait,下面是我的代码

namespace App\Traits;
use Mail;
trait MailTrait
{

    public function fn_send_mail($arr_recepients, $str_subject, $str_content)
    {
        Mail::send('mail.mailsample', ['content' => $str_content], function($message)
        {
            $message->to($arr_recepients);
            $message->from('abc.org', 'abc');
            $message->subject($str_subject);

        });
        if(Mail:: failures())
            return false;
        else
            return true;
    }

}

从我的控制器调用函数 fn_send_mail() 并传递参数如下 $status = $this->fn_send_mail(['123.gmail.com'],'hai', 'hai');

我收到这个错误 ErrorException in MailTrait.php line 14: Undefined variable: arr_recepients 请帮助我!!

您应该将 $arr_recepients 传递给回调块

Mail::send('mail.mailsample', ['content' => $str_content], function($message) use ($arr_recepients, $str_subject)
{
      $message->to($arr_recepients);
      $message->from('abc.org', 'abc');
      $message->subject($str_subject);
});

Mail::send 的第三个参数是一个闭包,它没有 $arr_recepients 范围,也没有主题。你需要使用use。试试这个

Mail::send('mail.mailsample', ['content' => $str_content], function($message) use ($arr_recepients, $str_subject)
    { //...