Laravel 发送电子邮件 call_user_func() 错误

Laravel sending email call_user_func() error

我正尝试在 laravel 中发送电子邮件,为此我正在使用 mail::send 函数。

这是我的代码:

$data = [
          'title'=>'Some Title',
          'content'=>'Content',
          'email'=> 'email',
          'password'=>'password',
          'remarks'=>'remarks'
      ];

      Mail::send('admin.mails.activate', $data, ['user'=>$user], function ($message) use ($user) {
          $message->to($user->email, $user->name)->subject('Account Activation Email')->from('support@webmail.com');
      });

我试图将 $data 变量传递给视图文件,将 $user 变量传递给回调函数,这样我就可以使用用户的电子邮件来发送电子邮件。但它给了我这个错误:

    call_user_func() expects parameter 1 to be a valid callback, array must have exactly two members 

这就是问题所在

$message->to($user->email, $user->name)

改为

$message->to($user->email)

Mail::send() 接受 3 个参数(视图、数据、回调)但你给了它 4 个:

Mail::send('admin.mails.activate', $data, ['user'=>$user], function ($message) use ($user) {
    $message->to($user->email, $user->name)->subject('Account Activation Email')->from('support@webmail.com');
});

我假设您打算将 ['user' => $user] 数组与 $data:

合并
Mail::send('admin.mails.activate', array_merge($data, ['user' => $user]), function ($message) use ($user) {
    $message->to($user->email, $user->name)->subject('Account Activation Email')->from('support@webmail.com');
});

或者:

$data = [
    'title'=>'Some Title',
    'content'=>'Content',
    'email'=> 'email',
    'password'=>'password',
    'remarks'=>'remarks',
    'user' => $user
];

Mail::send('admin.mails.activate', $data, function ($message) use ($user) {
    $message->to($user->email, $user->name)->subject('Account Activation Email')->from('support@webmail.com');
});