如果请求是获取而不是发布,如何返回?

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

如何验证整个请求是 Laravel 中的一个数组?

nginx里面如何判断一个请求是来自局域网还是外网

如何在fetch then / response函数中访问请求对象

如何使用 express req 对象获取请求路径

后台线程中的 moya 请求