提交表单时使用路由参数传递变量Laravel 5.2

Posted

技术标签:

【中文标题】提交表单时使用路由参数传递变量Laravel 5.2【英文标题】:Passing variable with route parameter when form is submitted Laravel 5.2 【发布时间】:2017-01-30 22:00:43 【问题描述】:

我在 viewpage.php 的表单中有这个:

<form action=" route('test.route'), ['id' => $params_id] " method="POST" >

而且这个在 route.php 中:

Route::post('/testing/id',[
    'uses' => 'TestController@testMethod', 
    'as' => 'test.route'
]);

这是我的测试控制器:

public function avaliarSubordinor(Request $request, $uid)
    return $uid;

我收到一条错误消息,提示“缺少 [Route: test.route] [URI: testing/id] 所需的参数。基本上我想要的是在提交表单时使用带有参数的路由将变量传递给我的控制器..

我不知道我这样做是否正确..如果有人可以帮助我或指出一个例子,以便我可以理解我做错了什么..

【问题讨论】:

【参考方案1】:

Laravel 5.2 Missing required parameters for [Route: user.profile] [URI: user/nickname/profile]

使用上面的链接我找到了一个解决方案..我改变了:

<form action=" route('test.route'), ['id' => $params_id] " method="POST" >

<form action=" route('test.route', [$params_id]) " method="GET" >

还有这个:

Route::post('/testing/id',[
     'uses' => 'TestController@testMethod', 
     'as' => 'test.route'
]);

Route::get('/testing/id',[
     'uses' => 'TestController@testMethod', 
     'as' => 'test.route'
]);

对于读取值:

if ($request->id) 

而且它有效!但我想知道其他人是否可以让 POST 版本正常工作,还是 GET 是唯一的方法?我不太了解 GET/POST 请求,只知道它用于表单和 ajax .. 真的很想了解更多关于 HTTP GET/POST 的信息,如果有人有什么要补充的,请分享!!谢谢!希望这个答案会对某人有所帮助!

【讨论】:

【参考方案2】:

虽然这是一篇旧帖子,但希望它对将来的其他人有所帮助。 对我来说,在 Laravel 5.8 中,POST 方法运行良好。

html 表单:

<form method="POST" role="form" action="route('store_changed_role', [$user_id, $division_id])">

路线:

Route::post('/sotre_changed_role/user_id/division_id', 'Admin\UserController@store_changed_role')->name('store_changed_role');

【讨论】:

【参考方案3】:

这对我来说效果很好。

 Form::open(array('route' => array('user.show', $user->id))) 

类名

 Form::open(array('route' => array('user.show', $user->id), 'class' => 'section-top')) 

【讨论】:

以上是关于提交表单时使用路由参数传递变量Laravel 5.2的主要内容,如果未能解决你的问题,请参考以下文章

将Javascript变量传递给laravel 5.3中的路由

Laravel 5,单击表单提交按钮时不显示任何内容

当我尝试使用 laravel 发布表单时,控制台显示“不正确的整数值”。无法识别路由参数

如何在Vue中提交表单,重定向到新路由并传递参数?

Laravel 使用来自控制器的参数重定向路由

带有 GET 和额外参数的 HTML 表单提交