Laravel重定向为POST

时间:2017-08-03 14:18:36

标签: laravel redirect post

目前,我的用户必须获取Route::get提供的访问表单,然后填写它以获取Route::post给出的结果视图。我需要创建一个可共享的链接,例如/account/search/vrm/{vrm},其中{vrm}是通常填写在表单页面上的VRM。然后,此VRM需要重定向到Route::post作为发布数据。这需要由我的控制器完成。我怎样才能在我的控制器中执行此操作?

路线:

// Shows form view
Route::get('/account/search', 'User\AccountController@getSearch')->name('account.search');
// Shows result view
Route::post('/account/search', 'User\AccountController@runSearch');
// Redirect to /account/search as POST
Route::get('/account/search/vrm/{vrm}', function($vrm) { ???????? });

4 个答案:

答案 0 :(得分:1)

无法重定向POST。

最好的办法是让他们登陆一个页面,其中包含一个带有<input type="hidden">字段的表单和一些立即重新提交到所需目的地的JavaScript。

答案 1 :(得分:0)

您可以重定向到控制器操作或直接致电控制器,请参阅the answer here:

总之,在控制器中设置请求方法,或调用控制器的操作。

  

Ps:我不想重复同样的事情。

答案 2 :(得分:0)

return redirect()->route('YOUR_ROUTE',['PARAM'=>'VARIABLE'])

答案 3 :(得分:0)

对于那些后来的人: 如果您为视图使用刀片模板引擎,您可以在表单开始标记后添加“@csrf”刀片指令以防止这种情况。这是由 laravel 完成的,以防止跨站点引用攻击。通过添加此指令,您可以解决这个问题。