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

时间:2016-09-22 10:55:32

标签: php laravel-5 routing url-routing

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

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

这是在route.php:

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

这是我的TestController:

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

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

我不知道我是否正确地做这件事..如果有人能帮助我或指出一个例子,那么我就能理解我做错了什么..

3 个答案:

答案 0 :(得分:2)

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'
]);

它有效!但是我想知道是否有其他人可以获得POST版本,或者GET是唯一的方法吗?我真的不太了解GET / POST请求,只是它在表单和ajax中使用..真的想了解更多关于HTTP GET / POST,如果有人有什么要添加请分享!!谢谢!希望这个答案能帮助别人!

答案 1 :(得分:0)

对我来说,效果很好。

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

具有班级名称

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

答案 2 :(得分:0)

尽管这是一则老文章,但希望它将来能对其他人有所帮助。 对我来说, 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');