Laravel 5中Mail函数中的变量

时间:2016-01-07 11:26:57

标签: php laravel laravel-5

我试图在Laravel 5中使用Mail函数中的变量,它似乎以某种方式被删除。 这就是我所拥有的:

public function SendEmail($data){


         Mail::send('emails.issue-found', $data, function ($message) {
         // dd($data);
        $message->from('me@myemail.com', 'my name');
        $message->subject('Alert!');
        $message->to($data['name']['email']);
    });
}

也许它会发送实际的$data? 在行$message->to($data['name']['email']);中,我收到错误:

  

未定义的变量:数据

我尝试将$data放在另一个变量中,但这也不起作用。 任何帮助都会很受欢迎。

2 个答案:

答案 0 :(得分:2)

$data变量作为Mail::send函数的参数传递,只能使其可供电子邮件视图访问。您必须使用use来访问匿名函数中的数据:

public function SendEmail($data){
    Mail::send('emails.issue-found', $data, function ($message) use ($data) {
        $message->from('me@myemail.com', 'my name');
        $message->subject('Alert!');
        $message->to($data['name']['email']);
    });
}

您可以在此处详细了解匿名函数:http://php.net/manual/en/functions.anonymous.php

答案 1 :(得分:2)

喜欢@haakym写道,除了private void ParseQueryString(string queryString) { if (queryString.Length == 0) return; var queryElements = queryString.Split('&'); for (int i = 0; i < queryElements.Length; i++) { string[] elementParts = queryElements[i].Split(new[] { '=' }, 2); string key = HttpUtil.UriDecode(elementParts[0]); string value = elementParts.Length == 2 ? HttpUtil.UriDecode(elementParts[1]) : ""; ProcessQueryStringPart(key, value); } } 需要use $data

喜欢这样 -

use ($data)

}

非常感谢你的帮助!