【问题标题】:Too few arguments passed with Mail::raw(), LaravelMail::raw() 传递的参数太少,Laravel
【发布时间】:2018-05-02 02:40:15
【问题描述】:

我不断收到此错误:

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

对于这个小sn-p代码:

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 表单中输入的邮件。有人可以帮我解决这个问题吗?

【问题讨论】:

  • 您在这一行遇到错误$message->from($request->email, $request->name); ?

标签: laravel


【解决方案1】:

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

如果你想传递一个变量,你必须在闭包中使用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');  
}

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2021-06-20
    • 1970-01-01
    • 2020-07-30
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-18
    • 1970-01-01
    相关资源
    最近更新 更多