如果请求是获取而不是发布,如何返回?
Posted
技术标签:
【中文标题】如果请求是获取而不是发布,如何返回?【英文标题】:How to return back if request is get instead of post? 【发布时间】:2020-07-18 01:07:48 【问题描述】:我有一个提交表单的路线。此路线为 Post 类型。当我直接将该网址放在浏览器的地址栏中时,它会给我这个错误。
此路由不支持 GET 方法。支持的方法:POST。
我想要的是,它应该返回而不是给出错误。
路线:
Route::post('/warehouse-locations-import', 'WarehouseLocationController@warehouseLocationsImport')
->name('warehouselocations.import');
控制器:
//this function will extract all locations data from file
public function extractWarehouseLocations($locations)
if ($locations['E'] && $locations['L'] && $locations['B'] && $locations['K'])
//making array of location data
$locationArray = array(
'name' => $locations['B'],
'barcode' => $locations['C'],
'group' => $locations['D'],
'capacity' => $locations['E'],
'row' => $locations['F'],
'bay' => $locations['G'],
'level' => $locations['H'],
'depth' => $locations['I'],
'product_type' => $locations['J'],
'pick_efficiency' => $locations['K']
);
//adding index in array according to if condition
$locations['L'] ? $locationArray['status'] = 1 : $locationArray['status'] = 0;
【问题讨论】:
为同一条路由添加一个GET
方法。
你的意思是说同一路线的get和post方法?
为什么不定义方法?
是....为其他目的使用不同的控制器方法获取方法(返回表单、一些消息等)。
【参考方案1】:
有时您可能需要注册一个响应多个 HTTP 动词的路由。您可以使用 match 方法。
Route::match(['get', 'post'], '/', function ()
//
);
或者,您甚至可以使用 any 方法注册一个响应所有 HTTP 动词的路由:
Route::any('/', function ()
//
);
【讨论】:
【参考方案2】:您可以使用 get 方法和使用 post 方法显示您的发送尝试,
Route::post('/warehouse-locations-import','WarehouseLocationController@warehouseLocationsImport')
->name('warehouselocations.import');
Route::get('/warehouse-locations-import', 'WarehouseLocationController@warehouseLocationsImportForm')
->name('warehouselocations.importform');
【讨论】:
以上是关于如果请求是获取而不是发布,如何返回?的主要内容,如果未能解决你的问题,请参考以下文章
如何以0/1而不是真/假反应形式获取复选框的值angular4