我试图在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
放在另一个变量中,但这也不起作用。
任何帮助都会很受欢迎。
答案 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)
}
非常感谢你的帮助!