Laravel控制器请求数据包含不正确的数据

时间:2019-05-29 09:31:35

标签: php laravel routing

我在Laravel 5.8中有一个API路由(POST),它在URL中包含一个参数。但是,当我使用$request->all()检查所有请求数据时,请求属性的URL部分有很大一部分。这似乎在我的本地环境中不会发生。

路由定义如下:

// Protected routes
Route::group(['middleware' => 'jwt'], function () {
    Route::post('/orders/set/{orderId}', 'Api\OrderController@setOrder');
});

在控制器中,我正在检查所有请求参数以验证它们。我通过以下方式检索控制器参数中的所有参数:

    /**
     * @param Request $request
     * @param $orderId
     * @return JsonResponse
     */
    public function setOrder(Request $request, $orderId)
    {
        $error = false;
        $result = [];
        $requestAttributes = $request->all();

        // etc...

        return response()->json($result, $error ? 500 : 200);
    }

这在我的本地环境下工作正常。但是,如果我在测试环境中使用此代码(我有一个临时奇怪的URL结构,这会导致我认为的问题),则$requestVariable属性将包含URL的一大部分。

URL结构如下: http://test.laravelenvironment.mysite.com/laravel/api/orders/set/12

带有帖子数据:

array(2) {
  ["shipping_method"]=>
  int(1753)
  ["order_date"]=>
  string(10) "05/29/2019"
}

当我转储$request->all()时,您会发现请求数据中有很大一部分URL不会发生:

array(3) {
  ["/api/orders/set/12"]=>
  NULL
  ["printed_date"]=>
  string(19) "05/29/2019"
  ["shipping_method"]=>
  string(4) "1753
}

其他API端点似乎工作正常。是什么引起了这个问题,我该如何解决?

0 个答案:

没有答案