使用Mail :: raw(),Laravel传递的参数太少

时间:2018-05-01 18:03:41

标签: laravel

我一直收到这个错误:

"Type error: Too few arguments to function App\Http\Controllers\PageController::App\Http\Controllers\{closure}(), 1 passed and exactly 2 expected"

对于这段代码:

public function contact(Request $request)  {
    Mail::raw($request->message, function($message, $request)
     {
         $message->from($request->email, $request->name);

         $message->to('info@test.com');
     });
      return view('quotation.index');  
}

$request->email更改为电子邮件字符串时,该功能可以正常工作。但是电子邮件需要来自以laravel形式输入的电子邮件。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:4)

您收到此错误是因为您将变量以错误的方式传递给闭包。

如果要传递变量,则必须在闭包中使用use ($request)

public function contact(Request $request)  {
    Mail::raw($request->message, function($message) use ($request)
     {
         $message->from($request->email, $request->name);

         $message->to('info@test.com');
     });
      return view('quotation.index');  
}

希望这有帮助。