我有一个新用户注册功能,可以在注册时发送和发送电子邮件。 当我通过注册过程时,它应该存储一条记录,然后发送电子邮件。
所以我使用了'Registered'
特质,但是我无法从我发送的数据中获取电子邮件地址
protected function registered(Request $request, $user)
{
Mail::send('email.send', $user = ['name'=>$user['name'], 'surname'=>$user['surname'], 'email'=>$user['email']], function ($message) {
$message->from('noreply@geniusmoney.co.uk');
$message->sender('noreply@geniusmoney.co.uk');
$message->to($user->email);
$message->bcc('geniusteam@geniusmoney.co.uk');
$message->subject('Welcome to Genius Money');
$message->attach('attachments/contract10.pdf');
$message->attach('attachments/entitychecklist.pdf');
$message->from('noreply@geniusmoney.co.uk', 'Welcome to Genius Money');
});
}
我的错误是:
未定义的变量:user和指向我的$ message->到
答案 0 :(得分:1)
您忘记使用use($user)
。在Mail::send
function($message)
中添加
尝试以下代码:
protected function registered(Request $request, $user)
{
Mail::send('email.send', $user = ['name'=>$user['name'], 'surname'=>$user['surname'], 'email'=>$user['email']], function ($message) use($user) {
$message->from('noreply@geniusmoney.co.uk');
$message->sender('noreply@geniusmoney.co.uk');
$message->to($user->email);
$message->bcc('geniusteam@geniusmoney.co.uk');
$message->subject('Welcome to Genius Money');
$message->attach('attachments/contract10.pdf');
$message->attach('attachments/entitychecklist.pdf');
$message->from('noreply@geniusmoney.co.uk', 'Welcome to Genius Money');
});
}
希望这会解决它!
答案 1 :(得分:0)
闭包中使用的变量需要声明为参数或使用use关键字声明。
使用use关键字可以对外部作用域中声明的变量进行闭包访问。 e.g。
Mail::send(
'email.send',
$user = array_only($user, ['name', 'surname', 'email']),
function ($message) use (&$user) {
...
}
);
答案 2 :(得分:0)
你需要在mail函数回调中使用$ user, 替换
function ($message) {
带
function ($message) use ($user) {