首先,在获取请求时,我显示了一个表单,提交后,它进入了发布URL,它在控制器中做了一些工作,然后返回了另一个具有表单的视图。提交此表格后,我验证了一些内容,如果验证失败,我想重定向并返回一些错误,但是不幸的是laravel不允许我 重定向回post方法。我有什么办法可以做到这一点?
我已经在https://laracasts.com/discuss/channels/laravel/redirect-back-to-post-route-i-get-methodnotallowed-exception的广播节目中看到了这个答案,但我听不懂建议
这些是我按照上述顺序排列的路线。
Route::get('/purchasePacks', 'masterDealerController@purchasePacks')->name('purchasePacks');
Route::post('/confirmPuchasedPacks','masterDealerController@confirmPuchasedPacks');
Route::post('/storeOrder','masterDealerController@storeOrder');
下面的是storeOrder方法中的重定向代码。重定向回帖子网址 ```
Alert::message("Unable to complete your payment at the moment.",'Please try again later.',"error");
return back()->withInput();
```
答案 0 :(得分:1)
我认为问题在于您正在向POST路由发送GET请求。您可以做一些我能想到的事情。
1) 在您的控制器中,您可以有一个静态方法storeOrderRedirect(),该方法可以处理您在重定向中需要执行的任何操作。
Route::match(array('GET', 'POST'), '/storeOrder', function()
{
App\Http\Controllers\masterDealerController::storeOrderRedirect()
});
2) 只需发布信息并获取路线
3) 我本人会通过ajax从表单发送数据,直到我得到想要的响应之前才离开页面,而不是使用重定向并离开页面开始。