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

Posted

技术标签:

【中文标题】如何在表单提交到下一个控制器时发送和访问参数/值【英文标题】:How to send and access a parameter/value upon Form Submission to next controller 【发布时间】:2015-06-17 22:49:03 【问题描述】:

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

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

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

确认路线是:

Route::get('confirm/user' , 'SignupController@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】:

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

【讨论】:

以上是关于如何在表单提交到下一个控制器时发送和访问参数/值的主要内容,如果未能解决你的问题,请参考以下文章

表单有哪几种提交方式?不同提交方式中asp程序如何获取表单中的参数?

ThinkPHP 中 form 表单用 get 提交会直接跳到首页,这个需要在哪里进行啥设置?

如何锁定访问子表单中的记录

在 Google Apps 脚本中提交 HTML 表单时如何发送地理定位和输入

多次点击提交后如何只提交一次表单?

提交表单时如何使用 $_GET 创建和发送 3 维数组?