Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel新用户注册电子邮件动态错误_Php_Laravel_Email - Fatal编程技术网

Php Laravel新用户注册电子邮件动态错误

Php Laravel新用户注册电子邮件动态错误,php,laravel,email,Php,Laravel,Email,我有一个新用户注册的功能,在注册时发送和发送电子邮件。 当我通过注册过程,它应该存储一个记录,然后发射电子邮件 因此,我使用了'Registered'特性,这很好,但我无法从发送的数据中获取电子邮件地址 protected function registered(Request $request, $user) { Mail::send('email.send', $user = ['name'=>$user['name'], 'surname'=>$user['su

我有一个新用户注册的功能,在注册时发送和发送电子邮件。 当我通过注册过程,它应该存储一个记录,然后发射电子邮件

因此,我使用了
'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->to


闭包中使用的变量需要声明为参数或使用use关键字声明

使用use关键字使闭包能够访问外部范围中声明的变量。e、 g

Mail::send(
    'email.send', 
    $user = array_only($user, ['name', 'surname', 'email']),
    function ($message) use (&$user) {
      ...
    }
);

您忘记使用
使用($user)
。在
函数($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');
    });
}

希望这能解决它

您需要在邮件函数回调中使用$user, 替换


您如何调用注册函数请添加该代码以及您使用的是哪一版本的Laravel?您需要在
Mail::send
中使用
use($user)
函数($message)
之后,您可以在下面看到我的答案!很高兴,我能帮助你!:)
function ($message) {
function ($message) use ($user) {