return back()->withInput($request->input()) throws 此路由不支持 GET 方法。支持的方法:POST
return back()->withInput($request->input()) throws The GET method is not supported for this route. Supported methods: POST
如果表单中有任何错误,我会收到此错误 "The GET method is not supported for this route. Supported methods: POST."。
我可以成功 post 我的表单,但它在 return 过程中抛出。
web.php
Route::post('/services/book/hotel', 'HotelController@showbook');
Route::post('/services/book/hotelroom', 'HotelController@book');
book 功能相当冗长但结束于
if($responseSuccess){
$error = [];
$bookingDetail = json_decode($response['BookingDetail']);
return Redirect::to(url('my-account'));
} else {
$error = $response['message'];
$hotel = [];
session()->flash('alert-class', 'alert-danger');
session()->flash('message', $error);
// dd(__method__.'::'.__line__,get_defined_vars(),$request->input());
return back()->withInput($request->input());
}
如果我取消对 dd
的注释,我会发现就错误和输入而言,一切看起来都像我期望的那样,但是当我点击 return 时,我明白了。我究竟做错了什么?
我已经阅读了 slack 和其他网站上的数十篇文章,这些文章讨论了 "The GET method is not supported for this route. Supported methods: POST.",但其中 none 似乎在 "returning back
"[=20= 时出现了问题]
我正在使用 PHP 7.2 和 Laravel/framework 6.2
如果我尝试将表单从 post 更改为 get,我会收到此错误,因为要传递大量数据。并且客户更喜欢 post 中的此内容,因此无法将其添加为书签或通过电子邮件发送。
此页面传递了很多 "hidden" 变量,我希望能够在需要时显示错误并且仍然有变量。这不可能吗?
back()
助手是使用 GET
方法重定向到页面。
如果它试图 GET
/services/book/hotel
或 /services/book/hotelroom
它将失败。
显示表格的页面的 url 是什么?
您可以使用 HTTP 307 Temporary Redirect:
return back(307)->withInput();
更好的解决方案:
不是将 <form>
操作属性从 POST
更改为 GET
,而是需要更改显示表单的页面:
Route::get('/services/book/hotel', 'HotelController@showbook');
Route::post('/services/book/hotelroom', 'HotelController@book');
如果表单中有任何错误,我会收到此错误 "The GET method is not supported for this route. Supported methods: POST."。
我可以成功 post 我的表单,但它在 return 过程中抛出。
web.php
Route::post('/services/book/hotel', 'HotelController@showbook');
Route::post('/services/book/hotelroom', 'HotelController@book');
book 功能相当冗长但结束于
if($responseSuccess){
$error = [];
$bookingDetail = json_decode($response['BookingDetail']);
return Redirect::to(url('my-account'));
} else {
$error = $response['message'];
$hotel = [];
session()->flash('alert-class', 'alert-danger');
session()->flash('message', $error);
// dd(__method__.'::'.__line__,get_defined_vars(),$request->input());
return back()->withInput($request->input());
}
如果我取消对 dd
的注释,我会发现就错误和输入而言,一切看起来都像我期望的那样,但是当我点击 return 时,我明白了。我究竟做错了什么?
我已经阅读了 slack 和其他网站上的数十篇文章,这些文章讨论了 "The GET method is not supported for this route. Supported methods: POST.",但其中 none 似乎在 "returning back
"[=20= 时出现了问题]
我正在使用 PHP 7.2 和 Laravel/framework 6.2
如果我尝试将表单从 post 更改为 get,我会收到此错误,因为要传递大量数据。并且客户更喜欢 post 中的此内容,因此无法将其添加为书签或通过电子邮件发送。
此页面传递了很多 "hidden" 变量,我希望能够在需要时显示错误并且仍然有变量。这不可能吗?
back()
助手是使用 GET
方法重定向到页面。
如果它试图 GET
/services/book/hotel
或 /services/book/hotelroom
它将失败。
显示表格的页面的 url 是什么?
您可以使用 HTTP 307 Temporary Redirect:
return back(307)->withInput();
更好的解决方案:
不是将 <form>
操作属性从 POST
更改为 GET
,而是需要更改显示表单的页面:
Route::get('/services/book/hotel', 'HotelController@showbook');
Route::post('/services/book/hotelroom', 'HotelController@book');