如何在向下一个控制器提交表单时发送和访问 parameter/value

How to send and access a parameter/value upon Form Submission to next controller

我是 Laravel 的新手。 我有一个控制器方法,它从请求中检索数据,创建一个模型实例 并将其保存到数据库。

然后它会重定向到具有值(用户名)的控制器

 return redirect()->action('SignupController@confirm' , $username);

确认路线是:

Route::get('confirm/{user}' , 'SignupController@confirm'); 

在 'confirm' 方法中,我从变量中检索值并将其传递给视图

public function confirm($username)
    {
        return view('auth.confirm')->with('username' , $username);
    }

确认视图出示表格以确认帐户,并在成功提交后post路由:

Route::post('confirm' , 'SignupController@confirmCode');

在 'confirmCode' 中,我想访问我实际上从用户输入中获取的值 并下线。 但我做不到,我什至尝试了 post 带有通配符的路线

Route::post('confirm/{user}' , 'SignupController@confirmCode');

并尝试像以前一样访问它,但是当表单提交时它没有传递,因为我什么也得不到 尝试使用 var_dump($username).

寻找它

错误是:

Missing argument 1 for App\Http\Controllers\SignupController::confirmCode()

顺便说一句,我暂时使用隐藏字段来完成这项工作,这显然不是一个好主意。 我知道我错过了什么。期待一些建议。提前致谢。

您可以简单地使用 Session::flash 或者如果它是多个重定向那么您可以使用 Session::put.

use Session; // at the top between class and namespace

public function confirm($username)
{
  Session::flash('username', $username);
  // Session::put('username',$username);
  return view('auth.confirm')->with('username' , $username);
}

public function confirmCode() {
    dd(Session::get('username'));
}