如何在表单提交到下一个控制器时发送和访问参数/值

时间:2015-04-12 16:12:51

标签: forms laravel laravel-5 laravel-routing

我是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);
    }

确认视图提供表格以确认帐户,并在成功提交后发布到路线:

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

在'confirmCode'中我想访问我从用户输入中获取的值 并传下去了。 但我无法做到这一点,我甚至尝试使用外卡的路线

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

并试图像以前一样访问它,但是当表单提交时它不会传递,因为当我没有得到任何东西时 试图使用var_dump($ username)来查找它。

错误是:

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

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

1 个答案:

答案 0 :(得分:0)

您可以简单地使用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'));
}